diff --git a/src/main/resources/magic/api/惠州项目管理企业版/里程碑.ms b/src/main/resources/magic/api/惠州项目管理企业版/里程碑.ms index c3b70c8..53e78c5 100644 --- a/src/main/resources/magic/api/惠州项目管理企业版/里程碑.ms +++ b/src/main/resources/magic/api/惠州项目管理企业版/里程碑.ms @@ -5,7 +5,7 @@ "groupId" : "b76810fe6da84d138b6bc227dd26b198", "name" : "里程碑", "createTime" : null, - "updateTime" : 1689834700688, + "updateTime" : 1718940039091, "lock" : null, "createBy" : null, "updateBy" : "admin", @@ -22,4 +22,4 @@ "responseBodyDefinition" : null } ================================ -return db.select("SELECT name, state FROM project_sub_item WHERE parent_id = 0 AND engineering_sn = #{body.engineeringSn} ") \ No newline at end of file +return db.select("SELECT et.* FROM engineering_stage et INNER JOIN engineering e ON et.id = e.stage_id WHERE e.engineering_sn = #{body.engineeringSn} ") \ No newline at end of file diff --git a/src/main/resources/magic/api/惠州项目管理政务版/投资管理.ms b/src/main/resources/magic/api/惠州项目管理政务版/投资管理.ms index 74ee45b..df2e581 100644 --- a/src/main/resources/magic/api/惠州项目管理政务版/投资管理.ms +++ b/src/main/resources/magic/api/惠州项目管理政务版/投资管理.ms @@ -5,7 +5,7 @@ "groupId" : "1f3d3e5b9fe340bab84de67b0de08f44", "name" : "投资管理", "createTime" : null, - "updateTime" : 1706587043096, + "updateTime" : 1718961018857, "lock" : null, "createBy" : "admin", "updateBy" : "admin", @@ -36,21 +36,50 @@ BigDecimal realPayAmountByYear = db.selectValue("SELECT IFNULL(SUM(pay_amount), BigDecimal applyAmountTotal = db.selectValue("SELECT IFNULL(SUM(apply_payment), 0) FROM investment_payment_stat WHERE #project") BigDecimal paymentTotal = db.selectValue("SELECT IFNULL(SUM(payment), 0) FROM investment_payment_stat WHERE #project") -BigDecimal big = new BigDecimal(10000); -result.put("paymentByMonth", paymentByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("applyAmountByMonth", applyAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("realPayAmountByMonth", realPayAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -var unPayAmountByMonth = applyAmountByMonth.subtract(realPayAmountByMonth); -result.put("unPayAmountByMonth", unPayAmountByMonth > 0 ? unPayAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP) : 0) -result.put("totalAmount", totalAmount.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("payRatio", realPayAmountTotal == 0 ? 0 : realPayAmountTotal.divide(totalAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) +Map map = db.selectOne("SELECT SUM(engineering_cost) cost FROM engineering WHERE #project ") +var cost = map.get("cost"); +BigDecimal costTotal = new BigDecimal(cost).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP) +result.put("total", costTotal); +List list = db.select("SELECT * FROM investment_plan WHERE #project") +BigDecimal totalCost = db.selectValue("SELECT SUM(engineering_cost) FROM engineering WHERE DATE_FORMAT(start_time, '%Y') = DATE_FORMAT(now(), '%Y') AND #project") +Map contractMap = db.selectOne("SELECT SUM(contract_amount) contractTotalAmount, SUM(settlement_amount) settlementAount FROM investment_contract WHERE #project") +Map payMap = db.selectOne("SELECT SUM(a.total_amount) payTotal, SUM(c.contract_amount) amountTotal FROM investment_payment a INNER JOIN (SELECT MAX(id) id FROM investment_payment GROUP BY contract_id) b on a.id = b.id LEFT JOIN investment_contract c on a.contract_id = c.id WHERE c.settlement_amount IS NOT NULL AND #projectalias") +BigDecimal big = new BigDecimal(10000); +let type = ["年初预算","年中调剂","上级补助资金","专项债券资金","三年滚动预算"] +for (item in type) { + BigDecimal total = new BigDecimal(0) + List amount = list.filter(l => l.funding_source.equals(item)).map(l => l.amount) + for (name in amount) { + total = total.add(new BigDecimal(name)) + } + result.put(item, total.divide(big, 2, BigDecimal.ROUND_HALF_UP)); +} +realPayAmountTotal = realPayAmountTotal.divide(big, 2, BigDecimal.ROUND_HALF_UP); +BigDecimal contractTotalAmount = contractMap.get("contractTotalAmount").divide(big, 2, BigDecimal.ROUND_HALF_UP) +BigDecimal settlementAount = contractMap.get("settlementAount").divide(big, 2, BigDecimal.ROUND_HALF_UP) +result.put("totalCost", new BigDecimal(totalCost).divide(big, 2, BigDecimal.ROUND_HALF_UP)); +result.put("totalCostRatio", new BigDecimal(totalCost).divide(big, 2, BigDecimal.ROUND_HALF_UP).divide(costTotal, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()); +result.put("contractTotalAmount", contractTotalAmount); +result.put("contractTotalAmountRatio", realPayAmountTotal.divide(contractTotalAmount, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()); +result.put("settlementAount", settlementAount); +result.put("settlementAountRatio", realPayAmountTotal.divide(settlementAount, 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()); +BigDecimal unPay = payMap.get("amountTotal").subtract(payMap.get("payTotal")); +result.put("unPay", unPay.divide(big, 2, BigDecimal.ROUND_HALF_UP)); +// result.put("paymentByMonth", paymentByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("applyAmountByMonth", applyAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("realPayAmountByMonth", realPayAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// var unPayAmountByMonth = applyAmountByMonth.subtract(realPayAmountByMonth); +// result.put("unPayAmountByMonth", unPayAmountByMonth > 0 ? unPayAmountByMonth.divide(big, 2, BigDecimal.ROUND_HALF_UP) : 0) + +// result.put("totalAmount", totalAmount.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("payRatio", realPayAmountTotal == 0 ? 0 : realPayAmountTotal.divide(totalAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) result.put("paymentTotal", paymentTotal.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("applyAmountTotal", applyAmountTotal.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("settlementAmount", settlementAmount.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("payRatio1", realPayAmountTotal == 0 ? 0 : realPayAmountTotal.divide(settlementAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) -result.put("settlementAmountByYear", settlementAmountByYear.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("payRatio2", realPayAmountByYear == 0 ? 0 : realPayAmountByYear.divide(totalAmountByYear, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) -result.put("realPayAmountTotal", realPayAmountTotal.divide(big, 2, BigDecimal.ROUND_HALF_UP)) -result.put("realPayAmountByYear", realPayAmountByYear.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("applyAmountTotal", applyAmountTotal.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("settlementAmount", settlementAmount.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("payRatio1", realPayAmountTotal == 0 ? 0 : realPayAmountTotal.divide(settlementAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) +// result.put("settlementAmountByYear", settlementAmountByYear.divide(big, 2, BigDecimal.ROUND_HALF_UP)) +// result.put("payRatio2", realPayAmountByYear == 0 ? 0 : realPayAmountByYear.divide(totalAmountByYear, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).doubleValue()) +result.put("realPayAmountTotal", realPayAmountTotal) +// result.put("realPayAmountByYear", realPayAmountByYear.divide(big, 2, BigDecimal.ROUND_HALF_UP)) return result \ No newline at end of file diff --git a/src/main/resources/magic/api/惠州项目管理政务版/进度管理.ms b/src/main/resources/magic/api/惠州项目管理政务版/进度管理.ms index 827505e..86b120e 100644 --- a/src/main/resources/magic/api/惠州项目管理政务版/进度管理.ms +++ b/src/main/resources/magic/api/惠州项目管理政务版/进度管理.ms @@ -5,7 +5,7 @@ "groupId" : "1f3d3e5b9fe340bab84de67b0de08f44", "name" : "进度管理", "createTime" : null, - "updateTime" : 1718709176045, + "updateTime" : 1718776895963, "lock" : null, "createBy" : null, "updateBy" : "admin",