diff --git a/src/main/java/com/yem/rf/salescommission/SparepartsNotShippedPlugin.java b/src/main/java/com/yem/rf/salescommission/SparepartsNotShippedPlugin.java index bcab56f2..a4affbc0 100644 --- a/src/main/java/com/yem/rf/salescommission/SparepartsNotShippedPlugin.java +++ b/src/main/java/com/yem/rf/salescommission/SparepartsNotShippedPlugin.java @@ -2,7 +2,9 @@ package com.yem.rf.salescommission; import com.yem.wm.utils.RptUtil; import com.yem.wm.utils.YEM; +import com.yem.wm.utils.groupfunc.GroupConcatFunctionByComma; import kd.bos.algo.DataSet; +import kd.bos.algo.GroupbyDataSet; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.report.AbstractReportListDataPlugin; @@ -11,6 +13,7 @@ import kd.bos.entity.report.ReportQueryParam; import kd.bos.orm.ORM; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; import java.util.*; @@ -217,8 +220,6 @@ public class SparepartsNotShippedPlugin extends AbstractReportListDataPlugin { 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"); @@ -238,12 +239,37 @@ public class SparepartsNotShippedPlugin extends AbstractReportListDataPlugin { DataSet yemEsDelivernotice = yemEsDelivernotice(); yemEsSalesorder = yemEsSalesorder.leftJoin(yemEsDelivernotice).on("queryDeliverNoticeid","delivernoticecorebillid") .select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemEsDelivernotice)).finish(); + DataSet esSalesorder = EsSalesorder(); + yemEsSalesorder = yemEsSalesorder.leftJoin(esSalesorder).on("queryDeliverNoticeid","newsalesorderid") + .select(RptUtil.getDataSetFiledAlias(yemEsSalesorder),RptUtil.getDataSetFiledAlias(esSalesorder)).finish(); yemEsSalesorder = yemEsSalesorder.where("billstatus = 'B' OR billstatus = 'C'"); yemEsSalesorder = yemEsSalesorder.where("delivernoticebillstatus != 'C'"); yemEsSalesorder = yemEsSalesorder.distinct(); return yemEsSalesorder; + }/** + * 外销合同多选基础资料 + * + * @return + */ + private DataSet EsSalesorder() { + QFilter qFilter = getBaseQFilter(); + qFilter.and("yem_es_materialinfo.yem_businesssort", QCP.equals, "P"); + qFilter.and("yem_signconfirmstatus",QCP.equals,"A"); + qFilter.and("yem_cancelstatus",QCP.equals,"A"); + List selectfields = new ArrayList<>(); + selectfields.add("id newsalesorderid"); + selectfields.add("yem_shipports.fbasedataid.name yem_shipports");//起运港 + selectfields.add("yem_destports.fbasedataid.name yem_destports");//目的港 + DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray()); + yemEsSalesorder = yemEsSalesorder.groupBy(new String[]{"newsalesorderid"}) + .agg(new GroupConcatFunctionByComma(), "yem_shipports", "yem_shipports") + .agg(new GroupConcatFunctionByComma(), "yem_destports", "yem_destports") + .finish(); + return yemEsSalesorder; } + + /** * 销售出库 * @return