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);
|
||||
supplierMaterials = processService.getSupplierMaterials(id);
|
||||
procurementDetails = processService.getProcurementDetails(project.getId(), id);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BigDecimal contractAmount = ProjectProcess.getContractAmount(procurementDetails);
|
||||
detail.setContractAmount(contractAmount);
|
||||
}
|
||||
|
||||
|
@ -720,6 +710,9 @@ public class ProcessController {
|
|||
@Transactional
|
||||
@PostMapping("/audit")
|
||||
public void audit(@RequestBody @Valid AuditForm form) {
|
||||
if (form.processId == null) {
|
||||
throw ErrorMessageException.failed("表单错误");
|
||||
}
|
||||
ProjectProcess process = obtainProjectProcess(form.processId);
|
||||
ActApproveTypeEnum approveType = form.processStatus == ProcessStatus.audit_passed ? ActApproveTypeEnum.APPROVAL_PASSED :
|
||||
ActApproveTypeEnum.APPROVAL_UN_PASS;
|
||||
|
|
|
@ -7,11 +7,14 @@ import com.fasterxml.jackson.databind.SerializerProvider;
|
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
|
||||
import org.hibernate.annotations.GenericGenerator;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.Convert;
|
||||
import javax.persistence.Entity;
|
||||
|
@ -129,6 +132,32 @@ public class ProjectProcess implements Serializable {
|
|||
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> {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -108,9 +108,9 @@ public class ProjectProcessService {
|
|||
return queryProject.getProcessType() == ProcessType.sale_contract;
|
||||
}
|
||||
|
||||
public BigDecimal getContractAmount(int id) {
|
||||
public BigDecimal getContractAmount(int projectId) {
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -362,6 +362,13 @@ public class ProjectProcessService {
|
|||
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) {
|
||||
return entityManager.find(ProjectBudgetCostDetail.class, budgetCostId);
|
||||
}
|
||||
|
@ -486,8 +493,18 @@ public class ProjectProcessService {
|
|||
// 垫资金额
|
||||
BigDecimal repaidAmount = getProjectRepaidAmount(entity.getProjectId());
|
||||
variables.put("repaidAmount", repaidAmount);
|
||||
// 合同金额
|
||||
variables.put("contractAmount", project.getContractAmount() == null ? 0 : project.getContractAmount());
|
||||
|
||||
if (entity.getProcessType() == ProcessType.procurement_contract) {
|
||||
// 合同金额
|
||||
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());
|
||||
// 合作类型
|
||||
|
|
|
@ -377,6 +377,7 @@
|
|||
auditForm: {
|
||||
processStatus: null
|
||||
},
|
||||
processId: null,
|
||||
auditFormVisible: false,
|
||||
supplierMaterials: []
|
||||
}
|
||||
|
@ -531,9 +532,9 @@
|
|||
.finally(() => loading.close())
|
||||
},
|
||||
|
||||
auditProcess(row, scope) {
|
||||
auditProcess() {
|
||||
this.auditForm = {
|
||||
processId: row.id,
|
||||
processId: this.processId,
|
||||
processStatus: null
|
||||
}
|
||||
this.auditFormVisible = true
|
||||
|
@ -560,7 +561,7 @@
|
|||
}).then(checkStatus).then(data => {
|
||||
// 关闭对话框
|
||||
this.auditFormVisible = false
|
||||
this.queryTable()
|
||||
this.backLastPage()
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: '审核成功',
|
||||
|
@ -601,6 +602,7 @@
|
|||
},
|
||||
mounted() {
|
||||
const processId = ${processId}
|
||||
this.processId = processId
|
||||
this.loadProject(processId)
|
||||
},
|
||||
filters: {
|
||||
|
|
Loading…
Reference in New Issue