|
@@ -9,6 +9,11 @@ import kd.bos.orm.query.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.Calendar;
|
|
|
|
+import java.util.Date;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 2025-03-16 Tyx
|
|
* 2025-03-16 Tyx
|
|
* 返利计算工具雷
|
|
* 返利计算工具雷
|
|
@@ -60,7 +65,7 @@ public class DiscountCalUtil {
|
|
* 获取销售合同,按客户和季度获取任务量
|
|
* 获取销售合同,按客户和季度获取任务量
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public DataSet getContract(int season) {
|
|
|
|
|
|
+ public DataSet getContract(int year, int season) {
|
|
String selectFields = "";
|
|
String selectFields = "";
|
|
switch(season) {
|
|
switch(season) {
|
|
case 1 :
|
|
case 1 :
|
|
@@ -76,6 +81,16 @@ public class DiscountCalUtil {
|
|
selectFields = "customer,nckd_qty10 + nckd_qty11 + nckd_qty12 as planQty";
|
|
selectFields = "customer,nckd_qty10 + nckd_qty11 + nckd_qty12 as planQty";
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.clear();
|
|
|
|
+ calendar.set(Calendar.YEAR, year);
|
|
|
|
+ Date endDate = calendar.getTime();
|
|
|
|
+ calendar.roll(Calendar.DAY_OF_YEAR, -1);
|
|
|
|
+ Date startDate = calendar.getTime();
|
|
|
|
+
|
|
|
|
+ QFilter filter = new QFilter("biztime", QCP.large_equals, startDate);
|
|
|
|
+ filter.and("biztime", QCP.less_equals, endDate);
|
|
|
|
+
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("getContract", saleContract, selectFields, null, null);
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("getContract", saleContract, selectFields, null, null);
|
|
return dataSet;
|
|
return dataSet;
|
|
}
|
|
}
|
|
@@ -84,8 +99,9 @@ public class DiscountCalUtil {
|
|
* 获取销售订单销售数量,物料分类 like 袋装 45-03
|
|
* 获取销售订单销售数量,物料分类 like 袋装 45-03
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public DataSet getOrderQtyByCustomer (QFilter[] filter) {
|
|
|
|
- QFilter filter1 = new QFilter("billentry.material.masterid.group.longnumber", QCP.like, "45!45-03%");
|
|
|
|
|
|
+ public DataSet getOrderQtyByCustomer (int year, int season) {
|
|
|
|
+ QFilter filter1 = getFilterByYearAndSeason(year, season, saleOrder);
|
|
|
|
+ filter1.and("billentry.material.masterid.group.longnumber", QCP.like, "45!45-03%");
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("order", saleOrder, "customer,nckd_basedatafield1 as thht,billentry.material.masterid as material,billentry.qty as qty", new QFilter[]{filter1}, null);
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("order", saleOrder, "customer,nckd_basedatafield1 as thht,billentry.material.masterid as material,billentry.qty as qty", new QFilter[]{filter1}, null);
|
|
DataSet sumDataSet = dataSet.groupBy(new String[]{"customer","thht","material"}).sum("qty").finish();
|
|
DataSet sumDataSet = dataSet.groupBy(new String[]{"customer","thht","material"}).sum("qty").finish();
|
|
return sumDataSet;
|
|
return sumDataSet;
|
|
@@ -95,11 +111,50 @@ public class DiscountCalUtil {
|
|
* 获取销售出库数量,物料分类 like 散装 45-01
|
|
* 获取销售出库数量,物料分类 like 散装 45-01
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public DataSet getIssueQtyByCustomer (QFilter[] filter) {
|
|
|
|
- QFilter filter1 = new QFilter("billentry.material.masterid.group.longnumber", QCP.like, "45!45-01%");
|
|
|
|
|
|
+ public DataSet getIssueQtyByCustomer (int year, int season) {
|
|
|
|
+ QFilter filter1 = getFilterByYearAndSeason(year, season, saleIssue);
|
|
|
|
+ filter1.and("billentry.material.masterid.group.longnumber", QCP.like, "45!45-01%");
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("issue", saleIssue, "customer,nckd_basedatafield as thht,billentry.material.masterid as material,billentry.qty as qty", new QFilter[]{filter1}, null);
|
|
DataSet dataSet = QueryServiceHelper.queryDataSet("issue", saleIssue, "customer,nckd_basedatafield as thht,billentry.material.masterid as material,billentry.qty as qty", new QFilter[]{filter1}, null);
|
|
DataSet sumDataSet = dataSet.groupBy(new String[]{"customer","thht","material"}).sum("qty").finish();
|
|
DataSet sumDataSet = dataSet.groupBy(new String[]{"customer","thht","material"}).sum("qty").finish();
|
|
return sumDataSet;
|
|
return sumDataSet;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public QFilter getFilterByYearAndSeason(int year, int season, String entityKey) {
|
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ Date startDate = null;
|
|
|
|
+ Date endDate = null;
|
|
|
|
+ try {
|
|
|
|
+ if(season == 1) {
|
|
|
|
+ startDate = sdf.parse(year +"-01-01");
|
|
|
|
+ endDate = sdf.parse(year +"-03-31");
|
|
|
|
+ }
|
|
|
|
+ else if (season == 2) {
|
|
|
|
+ startDate = sdf.parse(year +"-04-01");
|
|
|
|
+ endDate = sdf.parse(year +"-06-30");
|
|
|
|
+ }
|
|
|
|
+ else if (season == 3) {
|
|
|
|
+ startDate = sdf.parse(year +"-07-01");
|
|
|
|
+ endDate = sdf.parse(year +"-09-30");
|
|
|
|
+ }
|
|
|
|
+ else if (season == 4) {
|
|
|
|
+ startDate = sdf.parse(year +"-10-01");
|
|
|
|
+ endDate = sdf.parse(year +"-12-31");
|
|
|
|
+ }
|
|
|
|
+ String bizdateKey = "";
|
|
|
|
+ if(entityKey.equals(saleOrder)) {
|
|
|
|
+ bizdateKey = "bizdate";
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ bizdateKey = "biztime";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ QFilter filter = new QFilter(bizdateKey, QCP.less_equals, endDate);
|
|
|
|
+ filter.and(bizdateKey, QCP.large_equals, startDate);
|
|
|
|
+ return filter;
|
|
|
|
+
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|