Commit 59559289 by 杨清松

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

parent e2b722b1
package com.xyst.dinas.sales.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.UUID;
/**
* 销售计划明细
......@@ -32,6 +33,7 @@ public class SalesPlanDetail implements Serializable{
private Double stockAmount;
private Double planAmount;
private Double actualSaleAmount;
private BigDecimal distributedVolum;
public UUID getMasterId() {
......@@ -142,6 +144,12 @@ public class SalesPlanDetail implements Serializable{
public void setActualSaleAmount(Double 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{
salesPlanDetail.setStockAmount(detail.getDouble(SalesPlanConstant.stockAmount));
salesPlanDetail.setPlanAmount(detail.getDouble(SalesPlanConstant.planAmount));
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);
}
salesPlan.setSalesPlanDetails(salesPlanDetails);
......@@ -299,9 +305,20 @@ public class SalesPlanServiceImpl implements SalesPlanService{
//List<KObject> salesPlanDetails = salesplan.get(SalesPlanConstant.SalesPlanDetails).toList();
for (int k = 0; k < jsonArray.length(); k++) {
JSONObject jsonObject = jsonArray.getJSONObject(k);
//}
//for (KObject salesPlanDetail : salesPlanDetails) {
BigDecimal distributedVolum = calcDistributedVolum(jsonObject, startTime, endTime);
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");
//实际销售量
......@@ -326,20 +343,9 @@ public class SalesPlanServiceImpl implements SalesPlanService{
}
}
}
//可分配量 <=合同可用余量+实际销售量 - 临时销售计划分配量之和
BigDecimal distributedVolum = contractAmount.add(actualSaleAmount).subtract(totalSalesPlanAmount);
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 verifyMap;
}
}
return verifyList;
return distributedVolum;
}
@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