Compare commits
10 Commits
d65809238c
...
7f3dcb4e65
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7f3dcb4e65 | ||
![]() |
51d8af6a7d | ||
fbe6d5d043 | |||
![]() |
3a8c70150c | ||
50f0645265 | |||
13f5145fc2 | |||
![]() |
b5900ccd56 | ||
a97d42f812 | |||
fc33b58c8e | |||
1d42c39d8c |
@ -20,8 +20,7 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yem.rf.utils.RFUtils.formatDate;
|
||||
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
|
||||
import static com.yem.rf.utils.RFUtils.*;
|
||||
|
||||
/**
|
||||
* @Description: 整机发运明细表
|
||||
@ -61,6 +60,8 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
|
||||
Date start = filter.getDate("yem_fshipdate_start");
|
||||
Date end = filter.getDate("yem_fshipdate_end");
|
||||
|
||||
String fisshiped = filter.getString("yem_fisshiped");
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("1=1");
|
||||
if (YEM.isNotEmpty(start)) {
|
||||
@ -69,9 +70,20 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
|
||||
if (YEM.isNotEmpty(end)) {
|
||||
sb.append(" AND TO_DATE(yem_shipdate, 'yyyy-MM-dd') <= ").append(String.format("TO_DATE('%s','yyyy-MM-dd')", formatDate(end)));
|
||||
}
|
||||
if (YEM.isNotEmpty(fisshiped)) {
|
||||
if ("A".equals(fisshiped)) {//已发货
|
||||
sb.append(" AND yem_dnbillno IS NOT NULL AND yem_dnbillno != '' ");
|
||||
}
|
||||
if ("B".equals(fisshiped)) {//未发货
|
||||
sb.append(" AND yem_dnbillno IS NULL OR yem_dnbillno = ''");
|
||||
}
|
||||
}
|
||||
|
||||
dataSet = dataSet.where(sb.toString());
|
||||
|
||||
dataSet = dataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(dataSet)) + "," +
|
||||
"CASE WHEN yem_dnbillno IS NOT NULL AND yem_dnbillno != '' THEN '是' ELSE '否' END yem_isshiped");
|
||||
|
||||
return dataSet;
|
||||
}
|
||||
|
||||
@ -107,6 +119,10 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
|
||||
if (producttype > 0) {
|
||||
qFilter.and("yem_bd_products.id", "=", producttype);
|
||||
}
|
||||
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
|
||||
if (!fproducttypem.isEmpty()) {
|
||||
qFilter.and("yem_bd_products.id", "IN", fproducttypem);
|
||||
}
|
||||
ArrayList<String> selectfields = Lists.newArrayList();
|
||||
selectfields.add("yem_es_materialinfo.id main_detail_id");
|
||||
selectfields.add("id main_id");
|
||||
|
@ -17,8 +17,7 @@ import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yem.rf.utils.RFUtils.formatDate;
|
||||
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
|
||||
import static com.yem.rf.utils.RFUtils.*;
|
||||
|
||||
/**
|
||||
* @Description: TODO
|
||||
@ -107,6 +106,10 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
|
||||
sb.append(" AND yem_products = ").append(producttype);
|
||||
}
|
||||
|
||||
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
|
||||
String concated = concatFBaseDataFilter(fproducttypem, "yem_products");
|
||||
sb.append(concated);
|
||||
|
||||
resDataSet = resDataSet.addField("0.0", "yem_inventoryqty");
|
||||
|
||||
DataSet where = resDataSet.where(sb.toString());
|
||||
@ -168,16 +171,8 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
|
||||
selectfields.add("yem_shippingplan_entry.yem_plandetail_entry.id order_plan_detail_id");//跟单任务明细子分录ID
|
||||
selectfields.add("yem_shippingplan_entry.yem_plandetail_entry.yem_srcentryid order_detail_id_plan_fk");
|
||||
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
|
||||
|
||||
DataSet proReqBill = queryOrderProReqBill(param);
|
||||
|
||||
dataSet = dataSet.leftJoin(proReqBill)
|
||||
.on("order_plan_id", "order_req_main_detail_fk")
|
||||
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(proReqBill))
|
||||
.finish();
|
||||
|
||||
return dataSet;
|
||||
return ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
|
||||
}
|
||||
|
||||
private DataSet queryOrderProReqBill(ReportQueryParam param) {
|
||||
@ -237,11 +232,22 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
|
||||
private DataSet queryTrackTaskConsoleProcEntry(ReportQueryParam param) {
|
||||
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_es_salesorder_r.id task_order_plan_id");
|
||||
selectfields.add("yem_es_salesorder_r.yem_entrtyid plan_proc_detail_fk");
|
||||
selectfields.add("yem_es_salesorder_r.yem_stockway yem_ifreform");
|
||||
// selectfields.add("TO_CHAR(yem_es_salesorder_r.yem_yieldetacdate, 'yyyy-MM-dd') yem_prodfeedbackdate");//预计完成时间
|
||||
selectfields.add("TO_CHAR(yem_es_salesorder_r.yem_yieldfactacdate, 'yyyy-MM-dd') yem_plancompdate");//实际完成时间
|
||||
return ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null);
|
||||
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null);
|
||||
|
||||
DataSet proReqBill = queryOrderProReqBill(param);
|
||||
|
||||
dataSet = dataSet.leftJoin(proReqBill)
|
||||
.on("task_order_plan_id", "order_req_main_detail_fk")
|
||||
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(proReqBill))
|
||||
.finish();
|
||||
|
||||
return dataSet;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -18,8 +18,7 @@ import java.util.List;
|
||||
|
||||
import static com.yem.rf.salescommission.CompleteShipDetailReportPlugin.queryGathering_ClaimDate;
|
||||
import static com.yem.rf.salescommission.CompleteShipDetailReportPlugin.querySalesOrder_PayRate;
|
||||
import static com.yem.rf.utils.RFUtils.formatDate;
|
||||
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
|
||||
import static com.yem.rf.utils.RFUtils.*;
|
||||
|
||||
/**
|
||||
* @Description: TODO
|
||||
@ -116,6 +115,10 @@ public class SalesCommissionReportPlugin extends AbstractReportListDataPlugin {
|
||||
where.append(" AND yem_salesman = ").append(foperator);
|
||||
}
|
||||
|
||||
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
|
||||
String concated = concatFBaseDataFilter(fproducttypem, "yem_products");
|
||||
where.append(concated);
|
||||
|
||||
resDataSet = resDataSet.where(where.toString());
|
||||
|
||||
return resDataSet;
|
||||
|
@ -95,7 +95,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
|
||||
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("yem_customsdeclaration1 = 'A'");
|
||||
sb.append("yem_customsdeclaration1 = 'B'");
|
||||
if (YEM.isNotEmpty(yemContract)) {
|
||||
sb.append(" AND yem_contractnumber like '").append("%").append(yemContract).append("%").append("'");
|
||||
}
|
||||
|
@ -0,0 +1,274 @@
|
||||
package com.yem.rf.salescommission;
|
||||
|
||||
import com.yem.wm.utils.RptUtil;
|
||||
import com.yem.wm.utils.YEM;
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.report.AbstractReportListDataPlugin;
|
||||
import kd.bos.entity.report.FilterInfo;
|
||||
import kd.bos.entity.report.ReportQueryParam;
|
||||
import kd.bos.orm.ORM;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
|
||||
import static kd.fi.er.report.query.TripOrderRpt.algoKey;
|
||||
|
||||
/**
|
||||
* @author ljw
|
||||
* @date 2024/9/5 16:06
|
||||
* @description SparepartsNotShippedPlugin
|
||||
*/
|
||||
public class SparepartsNotShippedPlugin extends AbstractReportListDataPlugin {
|
||||
@Override
|
||||
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
|
||||
DataSet resDataSet;
|
||||
DataSet yemEsSalesorder = yemEsSalesorder();
|
||||
DataSet yemEsStoragetrans = yemEsStoragetrans();
|
||||
DataSet yemImEncasement = yemImEncasement();
|
||||
DataSet yemGathering = yemGathering();
|
||||
DataSet yemShippingdetails = yemShippingdetails();
|
||||
resDataSet = yemEsSalesorder.leftJoin(yemEsStoragetrans).on("queryDeliverNoticeid", "yem_corebillid").select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemEsStoragetrans)).finish();
|
||||
resDataSet = resDataSet.leftJoin(yemImEncasement).on("queryDeliverNoticeid", "encasementcorebillid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemImEncasement)).finish();
|
||||
resDataSet = resDataSet.leftJoin(yemGathering).on("queryDeliverNoticeid", "yem_titleid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemGathering)).finish();
|
||||
resDataSet = resDataSet.leftJoin(yemShippingdetails).on("queryDeliverNoticeid", "yemShippingdetailsyem_sourcebillid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemShippingdetails)).finish();
|
||||
resDataSet = resDataSet.distinct();
|
||||
resDataSet = RptUtil.zeroNullNums(resDataSet);
|
||||
DataSet selected = resDataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(resDataSet)) +
|
||||
",(yem_offeramounts-yem_theamountpaid) yem_theamountowed" +
|
||||
",CASE WHEN (yem_contractamount = yem_salcontractclaamt) THEN paymenttime ELSE null END yem_bizdate");
|
||||
selected = selected.removeFields("paymenttime");
|
||||
FilterInfo filter = reportQueryParam.getFilter();
|
||||
String yemContract = filter.getString("yem_billnos");
|
||||
DynamicObject yemClient = filter.getDynamicObject("yem_clientname");
|
||||
DynamicObjectCollection yem_bd_producttype = filter.getDynamicObjectCollection("yem_bd_producttype");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
DataSet result = selected.where("yem_billno != ''");
|
||||
sb.append("yem_billno != ''");
|
||||
if (YEM.isNotEmpty(yemContract)) {
|
||||
sb.append(" AND delivernoticebillno like '").append("%").append(yemContract).append("%").append("'");
|
||||
}
|
||||
if (YEM.isNotEmpty(yemClient)) {
|
||||
sb.append(" AND yem_client = ").append("'" + yemClient.getString("name") + "'");
|
||||
}
|
||||
if (YEM.isNotEmpty(yem_bd_producttype)){
|
||||
List<String> names = new ArrayList<>();
|
||||
for (DynamicObject dynamicObject : yem_bd_producttype) {
|
||||
String name = dynamicObject.getString("name");
|
||||
names.add(name);
|
||||
}
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("var",names);
|
||||
result = result.filter("yem_bd_products in var",map);
|
||||
|
||||
}
|
||||
DataSet where = result.where(sb.toString());
|
||||
return where.distinct();
|
||||
}
|
||||
|
||||
/**
|
||||
* 发运明细单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemShippingdetails() {
|
||||
|
||||
QFilter qFilter = getBaseQFilter();
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_iswithaccessories yem_boardaccessor");
|
||||
selectfields.add("yem_transportstyle.name yem_shippingmethod");
|
||||
selectfields.add("yem_sourcebillid yemShippingdetailsyem_sourcebillid");
|
||||
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_shippingdetails", String.join(",", selectfields), qFilter.toArray());
|
||||
yemShippingdetails = yemShippingdetails.select(String.join(",", RptUtil.getDataSetFiledAlias(yemShippingdetails)) +
|
||||
",CASE WHEN yem_boardaccessor = 'A' THEN '是' ELSE '否' END yem_boardaccessory");
|
||||
yemShippingdetails = yemShippingdetails
|
||||
.groupBy(new String[]{"yemShippingdetailsyem_sourcebillid"})
|
||||
.groupConcat("yem_boardaccessory", "yem_boardaccessory", ";")
|
||||
.groupConcat("yem_shippingmethod", "yem_shippingmethod", ";")
|
||||
.finish();
|
||||
return yemShippingdetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* 收款单金额对比
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemGathering() {
|
||||
QFilter qFilter = getBaseQFilter(new String[]{"B", "C"});
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id yem_titleid");//收款单的合同号id
|
||||
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractclaamt yem_salcontractclaamt");//收款单的合同金额
|
||||
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfields), qFilter.toArray());
|
||||
yemShippingdetails = yemShippingdetails.groupBy(new String[]{"yem_titleid"})
|
||||
.sum("yem_salcontractclaamt")
|
||||
.finish();
|
||||
yemShippingdetails = getYemShippingdetails(qFilter, yemShippingdetails);
|
||||
return yemShippingdetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* 收款单认领时间
|
||||
*
|
||||
* @param qFilter
|
||||
* @param yemShippingdetails
|
||||
* @return
|
||||
*/
|
||||
private static DataSet getYemShippingdetails(QFilter qFilter, DataSet yemShippingdetails) {
|
||||
List<String> selectfield = new ArrayList<>();
|
||||
selectfield.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id yem_salcontractnoid");//收款单的合同号id
|
||||
selectfield.add("yem_bizdate paymenttimes");//
|
||||
DataSet yemShippingdetail = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfield), qFilter.toArray());
|
||||
yemShippingdetail = yemShippingdetail.groupBy(new String[]{"yem_salcontractnoid"}).max("paymenttimes").finish();
|
||||
yemShippingdetail = yemShippingdetail.addField("TO_CHAR(paymenttimes, 'yyyy-MM-dd') paymenttime","paymenttime");
|
||||
yemShippingdetails = yemShippingdetail.leftJoin(yemShippingdetails)
|
||||
.on("yem_salcontractnoid", "yem_titleid")
|
||||
.select(RptUtil.getDataSetFiledAlias(yemShippingdetail), RptUtil.getDataSetFiledAlias(yemShippingdetails))
|
||||
.finish();
|
||||
DataSet claimedAmt = queryGathering_ClaimedAmt();
|
||||
yemShippingdetails = yemShippingdetails.leftJoin(claimedAmt).on("yem_salcontractnoid","salesorderid")
|
||||
.select(RptUtil.getDataSetFiledAlias(yemShippingdetails), RptUtil.getDataSetFiledAlias(claimedAmt)).finish();
|
||||
return yemShippingdetails;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询合同各个款项性质的已认领金额合计
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private static DataSet queryGathering_ClaimedAmt() {
|
||||
QFilter qFilter = getBaseQFilter(new String[]{"B", "C"});
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id salesorderid");
|
||||
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_claimamt yem_theamountpaid");//收款认领金额
|
||||
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfields), qFilter.toArray());
|
||||
dataSet = dataSet
|
||||
.groupBy(new String[]{"salesorderid"})
|
||||
.sum("yem_theamountpaid")
|
||||
.finish();
|
||||
return dataSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* 装箱单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemImEncasement() {
|
||||
QFilter qFilter = getBaseQFilter();
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_corebillid encasementcorebillid");
|
||||
selectfields.add("yem_completionstatuspj yem_completionstatuspj");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_im_encasement", String.join(",", selectfields), qFilter.toArray());
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订舱通知单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemEsStoragetrans() {
|
||||
QFilter qFilter = getBaseQFilter();
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_corebillid yem_corebillid");
|
||||
selectfields.add("yem_origcurrepremium yem_origcurrepremium");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray());
|
||||
yemEsSalesorder = yemEsSalesorder.groupBy(new String[]{"yem_corebillid"}).sum("yem_origcurrepremium").finish();
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 外销合同
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemEsSalesorder() {
|
||||
QFilter qFilter = getBaseQFilter();
|
||||
qFilter.and("yem_es_materialinfo.yem_businesssort", QCP.equals, "P");
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("id queryDeliverNoticeid");
|
||||
selectfields.add("yem_operator yem_salesman");
|
||||
selectfields.add("yem_billtype.name yem_billtype");
|
||||
selectfields.add("billno yem_billno");
|
||||
selectfields.add("yem_customer yem_customer");
|
||||
selectfields.add("yem_priceitem yem_priceitem");
|
||||
selectfields.add("yem_offeramount yem_offeramount");
|
||||
selectfields.add("yem_offeramount yem_offeramounts");
|
||||
selectfields.add("yem_interestamt yem_interestamt");
|
||||
selectfields.add("yem_creditamt yem_creditamt");
|
||||
selectfields.add("yem_fundpoolamt yem_fundpoolamt");
|
||||
selectfields.add("yem_premiumamt yem_premiumamt");
|
||||
selectfields.add("yem_customer.name yem_client");
|
||||
selectfields.add("yem_seafreight yem_seafreight");
|
||||
selectfields.add("yem_landcarrycost yem_landcarrycost");
|
||||
selectfields.add("yem_airliftcost yem_airliftcost");
|
||||
selectfields.add("yem_expresscost yem_expresscost");
|
||||
selectfields.add("yem_offeramount yem_contractamount");
|
||||
selectfields.add("yem_shipports yem_shipports");
|
||||
selectfields.add("yem_destports yem_destports");
|
||||
selectfields.add("yem_clientcountry yem_clientcountry");
|
||||
selectfields.add("TO_CHAR(yem_acshipdate, 'yyyy-MM-dd') yem_acshipdate");
|
||||
selectfields.add("yem_reccondition yem_reccondition");
|
||||
selectfields.add("yem_currency.name yem_currency");
|
||||
selectfields.add("yem_companyname yem_companyname");
|
||||
selectfields.add("yem_bd_products.name yem_bd_products");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
|
||||
yemEsSalesorder = yemEsSalesorder.distinct();
|
||||
yemEsSalesorder = yemEsSalesorder.select(String.join(",", RptUtil.getDataSetFiledAlias(yemEsSalesorder)) +
|
||||
",yem_seafreight+yem_landcarrycost+yem_airliftcost+yem_expresscost yem_freight");
|
||||
DataSet rightDataSet = yemEsSalesorders();
|
||||
yemEsSalesorder = yemEsSalesorder.leftJoin(rightDataSet).on("queryDeliverNoticeid", "Noticeid")
|
||||
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(rightDataSet)).finish();
|
||||
DataSet yemPlaceexamine = yemPlaceexamine();
|
||||
yemEsSalesorder = yemEsSalesorder.leftJoin(yemPlaceexamine).on("queryDeliverNoticeid","yem_sourcebillid")
|
||||
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemPlaceexamine)).finish();
|
||||
DataSet yemEsDelivernotice = yemEsDelivernotice();
|
||||
yemEsSalesorder = yemEsSalesorder.leftJoin(yemEsDelivernotice).on("queryDeliverNoticeid","delivernoticecorebillid")
|
||||
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemEsDelivernotice)).finish();
|
||||
yemEsSalesorder = yemEsSalesorder.where("billstatus = 'B' OR billstatus = 'C'");
|
||||
yemEsSalesorder = yemEsSalesorder.where("delivernoticebillstatus != 'C'");
|
||||
yemEsSalesorder = yemEsSalesorder.distinct();
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
private DataSet yemEsDelivernotice() {
|
||||
QFilter qFilter = getBaseQFilter(new String[]{"A","B"});
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_corebillid delivernoticecorebillid");
|
||||
selectfields.add("billstatus delivernoticebillstatus");
|
||||
selectfields.add("billno delivernoticebillno");
|
||||
selectfields.add("TO_CHAR(auditdate, 'yyyy-MM-dd') yem_shipdate");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray());
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
private DataSet yemPlaceexamine() {
|
||||
QFilter qFilter = getBaseQFilter(new String[]{"B","C"});
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("yem_sourcebillid yem_sourcebillid");
|
||||
selectfields.add("billstatus billstatus");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_placeexamine", String.join(",", selectfields), qFilter.toArray());
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 外销合同
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private DataSet yemEsSalesorders() {
|
||||
QFilter qFilter = getBaseQFilter();
|
||||
qFilter.and("yem_es_materialinfo.yem_businesssort", QCP.equals, "P");
|
||||
List<String> selectfields = new ArrayList<>();
|
||||
selectfields.add("id Noticeid");
|
||||
selectfields.add("yem_es_materialinfo.yem_qty yem_qty");
|
||||
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
|
||||
yemEsSalesorder = yemEsSalesorder.groupBy(new String[]{"Noticeid"}).sum("yem_qty").finish();
|
||||
return yemEsSalesorder;
|
||||
}
|
||||
|
||||
}
|
@ -1,10 +1,12 @@
|
||||
package com.yem.rf.utils;
|
||||
|
||||
import com.yem.wm.utils.YEM;
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.metadata.IDataEntityProperty;
|
||||
import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
|
||||
import kd.bos.entity.report.FilterInfo;
|
||||
import kd.bos.orm.ORM;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
|
||||
@ -87,4 +89,35 @@ public class RFUtils {
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static List<Long> getFBaseDataIds(FilterInfo filter, String propName) {
|
||||
List<Long> ids = new ArrayList<>();
|
||||
DynamicObjectCollection collection = filter.getDynamicObjectCollection(propName);
|
||||
if (collection != null) {
|
||||
for (DynamicObject d : collection) {
|
||||
long id = d.getLong("id");
|
||||
ids.add(id);
|
||||
}
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
public static String concatFBaseDataFilter(List<Long> ids, String propName) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (YEM.isNotEmpty(ids)) {
|
||||
sb.append(" AND ").append(propName).append(" IN (");
|
||||
|
||||
for (Long i : ids) {
|
||||
int idx = ids.indexOf(i);
|
||||
if (idx == ids.size() - 1) {
|
||||
sb.append(i);
|
||||
} else {
|
||||
sb.append(i).append(",");
|
||||
}
|
||||
}
|
||||
|
||||
sb.append(")");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,74 @@
|
||||
package com.yem.wm.im.materialpriceing;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.IDataModel;
|
||||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author ljw
|
||||
* @date 2024/9/6 10:05
|
||||
* @description materialPriceingPlugin
|
||||
*/
|
||||
public class materialPriceingPlugin extends AbstractBillPlugIn {
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
super.propertyChanged(e);
|
||||
String name = e.getProperty().getName();
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
switch (name) {
|
||||
case "yem_from":
|
||||
yemFrom(e);
|
||||
break;
|
||||
case "yem_reach":
|
||||
yemReach(e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 至不允许小于等于从
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
private void yemReach(PropertyChangedArgs e) {
|
||||
ChangeData changeData = e.getChangeSet()[0];
|
||||
int rowIndex = changeData.getRowIndex();
|
||||
int parentRowIndex = changeData.getParentRowIndex();
|
||||
BigDecimal newValue = (BigDecimal) changeData.getNewValue();
|
||||
DynamicObjectCollection yemBdLogistics = this.getModel().getEntryEntity("yem_entryentity");
|
||||
BigDecimal bigDecimal = yemBdLogistics.get(parentRowIndex).getDynamicObjectCollection("yem_subentryentity").get(rowIndex).getBigDecimal("yem_from");
|
||||
if (bigDecimal.compareTo(newValue) >= 0) {
|
||||
|
||||
this.getModel().setValue("yem_reach",0,rowIndex,parentRowIndex);
|
||||
|
||||
this.getView().showMessage("至不允许小于等于从!!!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从不能小于前一行的至
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
private void yemFrom(PropertyChangedArgs e) {
|
||||
ChangeData changeData = e.getChangeSet()[0];
|
||||
int rowIndex = changeData.getRowIndex();
|
||||
if (rowIndex - 1 < 0) {
|
||||
return;
|
||||
}
|
||||
int parentRowIndex = changeData.getParentRowIndex();
|
||||
BigDecimal newValue = (BigDecimal) changeData.getNewValue();
|
||||
DynamicObjectCollection yemBdLogistics = this.getModel().getEntryEntity("yem_entryentity");
|
||||
BigDecimal bigDecimal = yemBdLogistics.get(parentRowIndex).getDynamicObjectCollection("yem_subentryentity").get(rowIndex - 1).getBigDecimal("yem_reach");
|
||||
if (bigDecimal.compareTo(newValue) > 0) {
|
||||
|
||||
this.getModel().setValue("yem_from",0,rowIndex,parentRowIndex);
|
||||
this.getView().showMessage("从不能小于前一行的至!!!");
|
||||
}
|
||||
}
|
||||
}
|
@ -24,7 +24,6 @@ public class Application {
|
||||
cosmic.setServerIP("10.64.112.152");
|
||||
cosmic.setFileServerPathIPAndPort("","");
|
||||
cosmic.setConfigUrl("10.64.112.152:2181","zookeeper","Cosmic@5092");
|
||||
cosmic.set("login.type","STANDALONE");
|
||||
|
||||
// 134
|
||||
// cosmic.setClusterNumber("yxzg-prod");
|
||||
|
Loading…
Reference in New Issue
Block a user