Merge remote-tracking branch 'origin/1.2.0' into 1.2.0
commit
c6455af9da
|
@ -388,17 +388,7 @@ public class ProcessController {
|
||||||
contract = processService.findProcurementContract(id);
|
contract = processService.findProcurementContract(id);
|
||||||
supplierMaterials = processService.getSupplierMaterials(id);
|
supplierMaterials = processService.getSupplierMaterials(id);
|
||||||
procurementDetails = processService.getProcurementDetails(project.getId(), id);
|
procurementDetails = processService.getProcurementDetails(project.getId(), id);
|
||||||
BigDecimal contractAmount = BigDecimal.ZERO;
|
BigDecimal contractAmount = ProjectProcess.getContractAmount(procurementDetails);
|
||||||
for (ProcurementDetail procurementDetail : procurementDetails) {
|
|
||||||
if (!CollectionUtils.isEmpty(procurementDetail.getPurchaseDetails())) {
|
|
||||||
for (BudgetPurchaseDetail purchaseDetail : procurementDetail.getPurchaseDetails()) {
|
|
||||||
BigDecimal totalTaxInclude = purchaseDetail.getTotalTaxInclude();
|
|
||||||
if (totalTaxInclude != null) {
|
|
||||||
contractAmount = contractAmount.add(totalTaxInclude);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
detail.setContractAmount(contractAmount);
|
detail.setContractAmount(contractAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -720,6 +710,9 @@ public class ProcessController {
|
||||||
@Transactional
|
@Transactional
|
||||||
@PostMapping("/audit")
|
@PostMapping("/audit")
|
||||||
public void audit(@RequestBody @Valid AuditForm form) {
|
public void audit(@RequestBody @Valid AuditForm form) {
|
||||||
|
if (form.processId == null) {
|
||||||
|
throw ErrorMessageException.failed("表单错误");
|
||||||
|
}
|
||||||
ProjectProcess process = obtainProjectProcess(form.processId);
|
ProjectProcess process = obtainProjectProcess(form.processId);
|
||||||
ActApproveTypeEnum approveType = form.processStatus == ProcessStatus.audit_passed ? ActApproveTypeEnum.APPROVAL_PASSED :
|
ActApproveTypeEnum approveType = form.processStatus == ProcessStatus.audit_passed ? ActApproveTypeEnum.APPROVAL_PASSED :
|
||||||
ActApproveTypeEnum.APPROVAL_UN_PASS;
|
ActApproveTypeEnum.APPROVAL_UN_PASS;
|
||||||
|
|
|
@ -7,11 +7,14 @@ import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
|
|
||||||
import org.hibernate.annotations.GenericGenerator;
|
import org.hibernate.annotations.GenericGenerator;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.persistence.Convert;
|
import javax.persistence.Convert;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
|
@ -129,6 +132,32 @@ public class ProjectProcess implements Serializable {
|
||||||
this.lastUpdateAt = this.createAt;
|
this.lastUpdateAt = this.createAt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getContractAmount(List<ProcurementDetail> procurementDetails) {
|
||||||
|
BigDecimal contractAmount = BigDecimal.ZERO;
|
||||||
|
for (ProcurementDetail procurementDetail : procurementDetails) {
|
||||||
|
if (!CollectionUtils.isEmpty(procurementDetail.getPurchaseDetails())) {
|
||||||
|
for (BudgetPurchaseDetail purchaseDetail : procurementDetail.getPurchaseDetails()) {
|
||||||
|
BigDecimal totalTaxInclude = purchaseDetail.getTotalTaxInclude();
|
||||||
|
if (totalTaxInclude != null) {
|
||||||
|
contractAmount = contractAmount.add(totalTaxInclude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return contractAmount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal getContractAmountByPurchaseDetail(List<BudgetPurchaseDetail> purchaseDetails) {
|
||||||
|
BigDecimal contractAmount = BigDecimal.ZERO;
|
||||||
|
for (BudgetPurchaseDetail purchaseDetail : purchaseDetails) {
|
||||||
|
BigDecimal totalTaxInclude = purchaseDetail.getTotalTaxInclude();
|
||||||
|
if (totalTaxInclude != null) {
|
||||||
|
contractAmount = contractAmount.add(totalTaxInclude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return contractAmount;
|
||||||
|
}
|
||||||
|
|
||||||
static class SealTypeArraySerializer extends JsonSerializer<SealTypeArray> {
|
static class SealTypeArraySerializer extends JsonSerializer<SealTypeArray> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -108,9 +108,9 @@ public class ProjectProcessService {
|
||||||
return queryProject.getProcessType() == ProcessType.sale_contract;
|
return queryProject.getProcessType() == ProcessType.sale_contract;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getContractAmount(int id) {
|
public BigDecimal getContractAmount(int projectId) {
|
||||||
Map<String, Object> map = jdbcTemplate.queryForMap(
|
Map<String, Object> map = jdbcTemplate.queryForMap(
|
||||||
"select ifnull(sum(amount * price), 0) contractAmount from project_budget_income_detail where project_id = ?", id);
|
"select ifnull(sum(amount * price), 0) contractAmount from project_budget_income_detail where project_id = ?", projectId);
|
||||||
return (BigDecimal) map.values().iterator().next();
|
return (BigDecimal) map.values().iterator().next();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,6 +362,13 @@ public class ProjectProcessService {
|
||||||
return query.getResultList();
|
return query.getResultList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<BudgetPurchaseDetail> getBudgetPurchaseDetailsByProcessId(int processId) {
|
||||||
|
TypedQuery<BudgetPurchaseDetail> query = entityManager.createQuery(
|
||||||
|
"from BudgetPurchaseDetail where processId=:processId", BudgetPurchaseDetail.class);
|
||||||
|
query.setParameter("processId", processId);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
private ProjectBudgetCostDetail getCostDetailById(int budgetCostId) {
|
private ProjectBudgetCostDetail getCostDetailById(int budgetCostId) {
|
||||||
return entityManager.find(ProjectBudgetCostDetail.class, budgetCostId);
|
return entityManager.find(ProjectBudgetCostDetail.class, budgetCostId);
|
||||||
}
|
}
|
||||||
|
@ -486,8 +493,18 @@ public class ProjectProcessService {
|
||||||
// 垫资金额
|
// 垫资金额
|
||||||
BigDecimal repaidAmount = getProjectRepaidAmount(entity.getProjectId());
|
BigDecimal repaidAmount = getProjectRepaidAmount(entity.getProjectId());
|
||||||
variables.put("repaidAmount", repaidAmount);
|
variables.put("repaidAmount", repaidAmount);
|
||||||
|
|
||||||
|
if (entity.getProcessType() == ProcessType.procurement_contract) {
|
||||||
// 合同金额
|
// 合同金额
|
||||||
variables.put("contractAmount", project.getContractAmount() == null ? 0 : project.getContractAmount());
|
List<BudgetPurchaseDetail> purchaseDetails = getBudgetPurchaseDetailsByProcessId(entity.getId());
|
||||||
|
BigDecimal contractAmount = ProjectProcess.getContractAmountByPurchaseDetail(purchaseDetails);
|
||||||
|
variables.put("contractAmount", contractAmount);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// 合同金额
|
||||||
|
BigDecimal contractAmount = getContractAmount(project.getId());
|
||||||
|
variables.put("contractAmount", contractAmount);
|
||||||
|
}
|
||||||
// 项目类型
|
// 项目类型
|
||||||
variables.put("projectType", project.getType());
|
variables.put("projectType", project.getType());
|
||||||
// 合作类型
|
// 合作类型
|
||||||
|
|
|
@ -377,6 +377,7 @@
|
||||||
auditForm: {
|
auditForm: {
|
||||||
processStatus: null
|
processStatus: null
|
||||||
},
|
},
|
||||||
|
processId: null,
|
||||||
auditFormVisible: false,
|
auditFormVisible: false,
|
||||||
supplierMaterials: []
|
supplierMaterials: []
|
||||||
}
|
}
|
||||||
|
@ -531,9 +532,9 @@
|
||||||
.finally(() => loading.close())
|
.finally(() => loading.close())
|
||||||
},
|
},
|
||||||
|
|
||||||
auditProcess(row, scope) {
|
auditProcess() {
|
||||||
this.auditForm = {
|
this.auditForm = {
|
||||||
processId: row.id,
|
processId: this.processId,
|
||||||
processStatus: null
|
processStatus: null
|
||||||
}
|
}
|
||||||
this.auditFormVisible = true
|
this.auditFormVisible = true
|
||||||
|
@ -560,7 +561,7 @@
|
||||||
}).then(checkStatus).then(data => {
|
}).then(checkStatus).then(data => {
|
||||||
// 关闭对话框
|
// 关闭对话框
|
||||||
this.auditFormVisible = false
|
this.auditFormVisible = false
|
||||||
this.queryTable()
|
this.backLastPage()
|
||||||
this.$message({
|
this.$message({
|
||||||
showClose: true,
|
showClose: true,
|
||||||
message: '审核成功',
|
message: '审核成功',
|
||||||
|
@ -601,6 +602,7 @@
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
const processId = ${processId}
|
const processId = ${processId}
|
||||||
|
this.processId = processId
|
||||||
this.loadProject(processId)
|
this.loadProject(processId)
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
|
|
Loading…
Reference in New Issue