fix:报表国贸订单明细数据错误

(cherry picked from commit 9a81a8781f)
This commit is contained in:
zzs 2024-11-26 14:14:48 +08:00
parent 8206570fde
commit cb5a3bbaca

View File

@ -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<Long> 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<String> selectfields = new ArrayList<>();
selectfields.add("id order_title_id");
@ -169,13 +167,14 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter();
List<String> 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<String> selectfields = new ArrayList<>();
List<String> 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<String> 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;
}
/**