diff --git a/src/main/java/com/yem/rf/salescommission/ITCOrderDetailsReportPlugin.java b/src/main/java/com/yem/rf/salescommission/ITCOrderDetailsReportPlugin.java index d71eb156..879c2de0 100644 --- a/src/main/java/com/yem/rf/salescommission/ITCOrderDetailsReportPlugin.java +++ b/src/main/java/com/yem/rf/salescommission/ITCOrderDetailsReportPlugin.java @@ -34,35 +34,27 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin { @Override public DataSet query(ReportQueryParam param, Object o) throws Throwable { DataSet resDataSet; - DataSet placeexamine = queryPlaceExamine(param);//已提交下单审批 DataSet salesorder = querySalesOrder(param);//合同 DataSet salesorderplanentry = querySalesOrderPlanEntry(param);//合同跟单任务明细 DataSet storagetrans = queryStorageTrans(param);//订舱 DataSet tracktaskconsole = queryTrackTaskConsole(param);//跟单任务控制台 - DataSet tracktaskconsoleprocentry = queryTrackTaskConsoleProcEntry(param);//跟单任务控制台 备料分录 DataSet delivernotice = queryDeliverNotice(param); DataSet delivernotice_status = queryDeliverNoticeStatus(param); - - resDataSet = placeexamine.leftJoin(salesorder) - .on("source_order_id_placeexamine_fk", "order_title_id") - .select(RptUtil.getDataSetFiledAlias(placeexamine), RptUtil.getDataSetFiledAlias(salesorder)) - .finish(); - resDataSet = resDataSet.leftJoin(salesorderplanentry) - .on("order_detail_id", "order_detail_id_plan_fk") - .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(salesorderplanentry)) - .finish(); - resDataSet = resDataSet.leftJoin(storagetrans) + resDataSet = salesorder.leftJoin(storagetrans) .on("yem_vehicleno", "storage_detail_vehicleno_fk") - .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(storagetrans)) + .on("order_detail_id", "storage_detail_id_order_detail_fk") + .select(RptUtil.getDataSetFiledAlias(salesorder), RptUtil.getDataSetFiledAlias(storagetrans)) .finish(); resDataSet = resDataSet.leftJoin(tracktaskconsole) .on("order_detail_id", "plan_detail_source_id") + .on("yem_vehicleno", "plan_veh_fk") .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(tracktaskconsole)) .finish(); - resDataSet = resDataSet.leftJoin(tracktaskconsoleprocentry) - .on("plan_detail_id", "plan_proc_detail_fk") - .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(tracktaskconsoleprocentry)) + resDataSet = resDataSet.leftJoin(salesorderplanentry) + .on("order_detail_id", "order_detail_id_plan_fk") + .on("plan_id", "plan_id_plan_fk") + .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(salesorderplanentry)) .finish(); resDataSet = resDataSet.leftJoin(delivernotice) .on("order_detail_id", "core_order_id_delivernotice_fk") @@ -130,7 +122,13 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin { private DataSet querySalesOrder(ReportQueryParam param) { QFilter qFilter = getBaseQFilter(); - + DataSet placeExamine = queryPlaceExamine(param); + List orderId = new ArrayList<>(); + DynamicObjectCollection collection = ORM.create().toPlainDynamicObjectCollection(placeExamine); + for (DynamicObject d : collection) { + orderId.add(d.getLong("source_order_id_placeexamine_fk")); + } + qFilter.and("id", "in", orderId); List selectfields = new ArrayList<>(); selectfields.add("id order_title_id"); @@ -169,13 +167,14 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin { QFilter qFilter = getBaseQFilter(); List selectfields = new ArrayList<>(); - selectfields.add("yem_shippingplan_entry.id order_plan_id");//跟单任务明细ID selectfields.add("yem_shippingplan_entry.yem_plan_date forderdate");//跟单任务.下单日期 - 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"); + selectfields.add("yem_shippingplan_entry.yem_plandetail_entry.yem_tracktaskconsoleid plan_id_plan_fk"); - return ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray()); + + DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray()).distinct(); + return dataSet; } private DataSet queryOrderProReqBill(ReportQueryParam param) { @@ -202,6 +201,8 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin { selectfields.add("yem_boxvolume1 yem_boxvolume");//箱型箱量X selectfields.add("yem_contremark yem_sremark");//合同备注 selectfields.add("yem_es_materialinfo.yem_es_salesorder_z.yem_vehicleno storage_detail_vehicleno_fk");//整机编码 + selectfields.add("yem_es_materialinfo.yem_coreentryid storage_detail_id_order_detail_fk"); + return ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray()); } @@ -213,19 +214,39 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin { */ private DataSet queryTrackTaskConsole(ReportQueryParam param) { - List selectfields = new ArrayList<>(); + List detail = new ArrayList<>(); - selectfields.add("id plan_id"); - selectfields.add("yem_sourcebillid source_order_id"); - selectfields.add("TO_CHAR(yem_acshipdate, 'yyyy-MM-dd') yem_reqinventorydate");//预计需求入库时间 - selectfields.add("yem_es_materialinfo.id plan_detail_id"); - selectfields.add("yem_es_materialinfo.yem_sourceentryid plan_detail_source_id"); -// selectfields.add("yem_es_materialinfo.yem_ifreformg yem_ifreform");//是否改制 - selectfields.add("yem_es_materialinfo.yem_remarks yem_remark");//备注 - selectfields.add("yem_nameplatelogo.id yem_nameplatelogo");//铭牌标识 - selectfields.add("yem_nameplatetype yem_nameplatetype");//铭牌类型 + detail.add("id plan_id"); + detail.add("yem_sourcebillid source_order_id"); + detail.add("TO_CHAR(yem_acshipdate, 'yyyy-MM-dd') yem_reqinventorydate");//预计需求入库时间 + detail.add("yem_es_materialinfo.id plan_detail_id"); + detail.add("yem_es_materialinfo.yem_sourceentryid plan_detail_source_id"); +// detail.add("yem_es_materialinfo.yem_ifreformg yem_ifreform");//是否改制 + detail.add("yem_es_materialinfo.yem_remarks yem_remark");//备注 + detail.add("yem_nameplatelogo.id yem_nameplatelogo");//铭牌标识 + detail.add("yem_nameplatetype yem_nameplatetype");//铭牌类型 - return ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null); + DataSet detailSet = ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", detail), null); + + List comp = new ArrayList<>(); + comp.add("yem_es_salesorder_r.yem_es_salesorder_z.yem_vehicleno plan_veh_fk"); + comp.add("yem_es_salesorder_r.yem_entrtyid plan_product_id_fk"); + comp.add("yem_es_salesorder_r.id task_order_plan_id"); + comp.add("yem_es_salesorder_r.yem_entrtyid plan_proc_detail_fk"); + comp.add("yem_es_salesorder_r.yem_stockway yem_ifreform"); + comp.add("TO_CHAR(yem_es_salesorder_r.yem_yieldfactacdate, 'yyyy-MM-dd') yem_plancompdate");//实际完成时间 + DataSet productSet = ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", comp), null); + DataSet proReqBill = queryOrderProReqBill(param); + + DataSet res = detailSet.leftJoin(productSet) + .on("plan_detail_id", "plan_product_id_fk") + .select(RptUtil.getDataSetFiledAlias(detailSet), RptUtil.getDataSetFiledAlias(productSet)) + .finish(); + res = res.leftJoin(proReqBill) + .on("task_order_plan_id", "order_req_main_detail_fk") + .select(RptUtil.getDataSetFiledAlias(res), RptUtil.getDataSetFiledAlias(proReqBill)) + .finish(); + return res; } /**