流程审批变量
parent
e8d0a3c77a
commit
ba4675994d
|
@ -121,6 +121,7 @@ public class ProcessController {
|
||||||
@GetMapping("/new")
|
@GetMapping("/new")
|
||||||
public String newProcess(Model model) {
|
public String newProcess(Model model) {
|
||||||
model.addAttribute("sealTypes", SealType.values());
|
model.addAttribute("sealTypes", SealType.values());
|
||||||
|
model.addAttribute("procurementMode", ProcurementMode.values());
|
||||||
model.addAttribute("taxRate", Arrays.asList(0, 1, 3, 4, 5, 6, 9, 10, 13));
|
model.addAttribute("taxRate", Arrays.asList(0, 1, 3, 4, 5, 6, 9, 10, 13));
|
||||||
return "/admin/business/process-new";
|
return "/admin/business/process-new";
|
||||||
}
|
}
|
||||||
|
@ -198,9 +199,7 @@ public class ProcessController {
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal getRepaidAmount(int id) {
|
private BigDecimal getRepaidAmount(int id) {
|
||||||
Map<String, Object> map = jdbcTemplate.queryForMap(
|
return processService.getProjectRepaidAmount(id);
|
||||||
"select ifnull(sum(underwritten_plan), 0) repaidAmount from project_budget_plan_detail where project_id = ?", id);
|
|
||||||
return (BigDecimal) map.values().iterator().next();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
|
@ -281,8 +280,8 @@ public class ProcessController {
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String isPrepaid(Project project) {
|
private String isPrepaid(Project project) {
|
||||||
return project.getUnderwrittenMode() == 2 || project.getUnderwrittenMode() == 3 ? "是" : "否";
|
return processService.isProjectPrepaid(project) ? "是" : "否";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
|
@ -342,20 +341,17 @@ public class ProcessController {
|
||||||
|
|
||||||
entityManager.persist(entity);
|
entityManager.persist(entity);
|
||||||
|
|
||||||
HashMap<String, Object> variables = new HashMap<>();
|
|
||||||
if (entity.getProcessType() != null) {
|
if (entity.getProcessType() != null) {
|
||||||
switch (entity.getProcessType()) {
|
switch (entity.getProcessType()) {
|
||||||
case sale_contract:
|
case sale_contract:
|
||||||
SaleContract saleContract = SaleContract.from(form);
|
SaleContract saleContract = SaleContract.from(form);
|
||||||
saleContract.setProcessId(entity.getId());
|
saleContract.setProcessId(entity.getId());
|
||||||
entityManager.persist(saleContract);
|
entityManager.persist(saleContract);
|
||||||
variables.put("contract", saleContract);
|
|
||||||
break;
|
break;
|
||||||
case business_procurement:
|
case business_procurement:
|
||||||
ProcurementContract procurementContract = ProcurementContract.from(form);
|
ProcurementContract procurementContract = ProcurementContract.from(form);
|
||||||
procurementContract.setProcessId(entity.getId());
|
procurementContract.setProcessId(entity.getId());
|
||||||
entityManager.persist(procurementContract);
|
entityManager.persist(procurementContract);
|
||||||
variables.put("contract", procurementContract);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new UnsupportedOperationException("还不支持");
|
throw new UnsupportedOperationException("还不支持");
|
||||||
|
@ -365,7 +361,8 @@ public class ProcessController {
|
||||||
processService.updateIncomeDetails(form.getIncomeDetails());
|
processService.updateIncomeDetails(form.getIncomeDetails());
|
||||||
|
|
||||||
if (form.getStatus() == ProcessStatus.to_be_audit) {
|
if (form.getStatus() == ProcessStatus.to_be_audit) {
|
||||||
processService.startAuditProgress(entity, variables);
|
// 发起流程
|
||||||
|
processService.startAuditProgress(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,16 +382,13 @@ public class ProcessController {
|
||||||
|
|
||||||
entityManager.merge(entity);
|
entityManager.merge(entity);
|
||||||
|
|
||||||
HashMap<String, Object> variables = new HashMap<>();
|
|
||||||
switch (entity.getProcessType()) {
|
switch (entity.getProcessType()) {
|
||||||
case sale_contract: {
|
case sale_contract: {
|
||||||
SaleContract contract = processService.findSaleContract(form.getId());
|
SaleContract contract = processService.findSaleContract(form.getId());
|
||||||
contract.setClientName(form.getClientName());
|
contract.setClientName(form.getClientName());
|
||||||
contract.setPaymentTerms(form.getPaymentTerms());
|
contract.setPaymentTerms(form.getPaymentTerms());
|
||||||
contract.setApplyPersonPhone(form.getApplyPersonPhone());
|
contract.setApplyPersonPhone(form.getApplyPersonPhone());
|
||||||
|
|
||||||
entityManager.merge(contract);
|
entityManager.merge(contract);
|
||||||
variables.put("contract", contract);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case business_procurement: {
|
case business_procurement: {
|
||||||
|
@ -402,9 +396,7 @@ public class ProcessController {
|
||||||
contract.setMode(form.getProcurementMode());
|
contract.setMode(form.getProcurementMode());
|
||||||
contract.setPaymentTerms(form.getPaymentTerms());
|
contract.setPaymentTerms(form.getPaymentTerms());
|
||||||
contract.setSupplierName(form.getSupplierName());
|
contract.setSupplierName(form.getSupplierName());
|
||||||
|
|
||||||
entityManager.merge(contract);
|
entityManager.merge(contract);
|
||||||
variables.put("contract", contract);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -414,7 +406,7 @@ public class ProcessController {
|
||||||
processService.updateIncomeDetails(form.getIncomeDetails());
|
processService.updateIncomeDetails(form.getIncomeDetails());
|
||||||
|
|
||||||
if (form.getStatus() == ProcessStatus.to_be_audit) {
|
if (form.getStatus() == ProcessStatus.to_be_audit) {
|
||||||
processService.startAuditProgress(entity, variables);
|
processService.startAuditProgress(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package cn.palmte.work.service;
|
package cn.palmte.work.service;
|
||||||
|
|
||||||
import cn.palmte.work.config.activiti.ActProjectTypeEnum;
|
|
||||||
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -16,8 +16,14 @@ import java.util.stream.Collectors;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.TypedQuery;
|
import javax.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import cn.palmte.work.config.activiti.ActProjectTypeEnum;
|
||||||
import cn.palmte.work.model.Admin;
|
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.ProcessStatus;
|
||||||
|
import cn.palmte.work.model.enums.ProjectType;
|
||||||
import cn.palmte.work.model.process.ProcurementContract;
|
import cn.palmte.work.model.process.ProcurementContract;
|
||||||
import cn.palmte.work.model.process.ProjectProcess;
|
import cn.palmte.work.model.process.ProjectProcess;
|
||||||
import cn.palmte.work.model.process.SaleContract;
|
import cn.palmte.work.model.process.SaleContract;
|
||||||
|
@ -36,6 +42,7 @@ public class ProjectProcessService {
|
||||||
private final JdbcTemplate jdbcTemplate;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
private final EntityManager entityManager;
|
private final EntityManager entityManager;
|
||||||
private final ProjectInstanceService projectInstanceService;
|
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) {
|
public void startAuditProgress(ProjectProcess entity) {
|
||||||
HashMap<String, Object> variables = new HashMap<>();
|
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);
|
startAuditProgress(entity, variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否垫资
|
||||||
|
*/
|
||||||
|
public boolean isProjectPrepaid(Project project) {
|
||||||
|
return project.getUnderwrittenMode() == 2 || project.getUnderwrittenMode() == 3;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发起流程审批
|
* 发起流程审批
|
||||||
*/
|
*/
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void startAuditProgress(ProjectProcess entity, Map<String, Object> variables) {
|
public void startAuditProgress(ProjectProcess entity, Map<String, Object> variables) {
|
||||||
if (entity.getStatus() == ProcessStatus.to_be_audit) {
|
if (entity.getStatus() == ProcessStatus.to_be_audit) {
|
||||||
variables.put("process", entity);
|
|
||||||
switch (entity.getProcessType()) {
|
switch (entity.getProcessType()) {
|
||||||
case sale_contract:
|
case sale_contract:
|
||||||
projectInstanceService.startProcessByProjectId(entity.getId(), ActProjectTypeEnum.SALE_CONTRACT, variables);
|
projectInstanceService.startProcessByProjectId(entity.getId(), ActProjectTypeEnum.SALE_CONTRACT, variables);
|
||||||
|
|
Loading…
Reference in New Issue