Commit 59559289 by 杨清松

销售计划编辑增加可分配余量字段

parent e2b722b1
package com.xyst.dinas.sales.entity; package com.xyst.dinas.sales.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.UUID; import java.util.UUID;
/** /**
* 销售计划明细 * 销售计划明细
...@@ -32,6 +33,7 @@ public class SalesPlanDetail implements Serializable{ ...@@ -32,6 +33,7 @@ public class SalesPlanDetail implements Serializable{
private Double stockAmount; private Double stockAmount;
private Double planAmount; private Double planAmount;
private Double actualSaleAmount; private Double actualSaleAmount;
private BigDecimal distributedVolum;
public UUID getMasterId() { public UUID getMasterId() {
...@@ -142,6 +144,12 @@ public class SalesPlanDetail implements Serializable{ ...@@ -142,6 +144,12 @@ public class SalesPlanDetail implements Serializable{
public void setActualSaleAmount(Double actualSaleAmount) { public void setActualSaleAmount(Double actualSaleAmount) {
this.actualSaleAmount = actualSaleAmount; this.actualSaleAmount = actualSaleAmount;
} }
public BigDecimal getDistributedVolum() {
return distributedVolum;
}
public void setDistributedVolum(BigDecimal distributedVolum) {
this.distributedVolum = distributedVolum;
}
} }
...@@ -194,7 +194,13 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -194,7 +194,13 @@ public class SalesPlanServiceImpl implements SalesPlanService{
salesPlanDetail.setStockAmount(detail.getDouble(SalesPlanConstant.stockAmount)); salesPlanDetail.setStockAmount(detail.getDouble(SalesPlanConstant.stockAmount));
salesPlanDetail.setPlanAmount(detail.getDouble(SalesPlanConstant.planAmount)); salesPlanDetail.setPlanAmount(detail.getDouble(SalesPlanConstant.planAmount));
salesPlanDetail.setActualSaleAmount(detail.getDouble(SalesPlanConstant.actualSaleAmount)); salesPlanDetail.setActualSaleAmount(detail.getDouble(SalesPlanConstant.actualSaleAmount));
//计算销售计划可分配余量
JSONObject jsonObject = new JSONObject(salesPlanDetail);
KObject planningCycle = salesPlanKObject.get("planningCycle");
Date startTime = planningCycle.getDate("startTime");
Date endTime = planningCycle.getDate("endTime");
BigDecimal distributedVolum = calcDistributedVolum(jsonObject, startTime, endTime);
salesPlanDetail.setDistributedVolum(distributedVolum);
salesPlanDetails.add(salesPlanDetail); salesPlanDetails.add(salesPlanDetail);
} }
salesPlan.setSalesPlanDetails(salesPlanDetails); salesPlan.setSalesPlanDetails(salesPlanDetails);
...@@ -299,9 +305,20 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -299,9 +305,20 @@ public class SalesPlanServiceImpl implements SalesPlanService{
//List<KObject> salesPlanDetails = salesplan.get(SalesPlanConstant.SalesPlanDetails).toList(); //List<KObject> salesPlanDetails = salesplan.get(SalesPlanConstant.SalesPlanDetails).toList();
for (int k = 0; k < jsonArray.length(); k++) { for (int k = 0; k < jsonArray.length(); k++) {
JSONObject jsonObject = jsonArray.getJSONObject(k); JSONObject jsonObject = jsonArray.getJSONObject(k);
//} BigDecimal distributedVolum = calcDistributedVolum(jsonObject, startTime, endTime);
//for (KObject salesPlanDetail : salesPlanDetails) { if(jsonObject.getBigDecimal("planAmount").compareTo(BigDecimal.ZERO) != 0 && jsonObject.getBigDecimal("planAmount").compareTo(distributedVolum) > -1) { //大于等于
Map<String, Object> verifyMap = new HashMap<String, Object>();
verifyMap.put("contractName", jsonObject.getString("contractName"));
verifyMap.put("dinasTypeName", jsonObject.getString("dinasTypeName"));
verifyMap.put("projectName", jsonObject.getString("projectName"));
verifyMap.put("distributedVolum", distributedVolum);
verifyList.add(verifyMap);
}
}
return verifyList;
}
public BigDecimal calcDistributedVolum(JSONObject jsonObject,Date startTime,Date endTime) {
//合同可用余量 //合同可用余量
BigDecimal contractAmount = jsonObject.getBigDecimal("contractAmount"); BigDecimal contractAmount = jsonObject.getBigDecimal("contractAmount");
//实际销售量 //实际销售量
...@@ -326,20 +343,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{ ...@@ -326,20 +343,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
} }
} }
} }
//可分配量 <=合同可用余量+实际销售量 - 临时销售计划分配量之和 //可分配量 <=合同可用余量+实际销售量 - 临时销售计划分配量之和
BigDecimal distributedVolum = contractAmount.add(actualSaleAmount).subtract(totalSalesPlanAmount); BigDecimal distributedVolum = contractAmount.add(actualSaleAmount).subtract(totalSalesPlanAmount);
if(jsonObject.getBigDecimal("planAmount").compareTo(BigDecimal.ZERO) != 0 && jsonObject.getBigDecimal("planAmount").compareTo(distributedVolum) > -1) { //大于等于 return distributedVolum;
Map<String, Object> verifyMap = new HashMap<String, Object>();
verifyMap.put("contractName", jsonObject.getString("contractName"));
verifyMap.put("dinasTypeName", jsonObject.getString("dinasTypeName"));
verifyMap.put("projectName", jsonObject.getString("projectName"));
verifyMap.put("distributedVolum", distributedVolum);
verifyList.add(verifyMap);
//return verifyMap;
}
}
return verifyList;
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment