Compare commits

...

8 Commits

Author SHA1 Message Date
zzs
5c49f594cf feat:报表,发车日报,取消跟单任务控制台查询审核过滤条件 2025-02-19 21:03:13 +08:00
zzs
35bf4911db feat:报表,发车日报,未收款数量计算修改 2025-02-19 21:03:10 +08:00
zzs
f76ffc41a1 feat:报表,国贸订单明细生产线有效数量取值错误问题 2025-02-19 21:03:06 +08:00
zzs
106270e8de feat:整机发运明细表增加字段,调拨日期
(cherry picked from commit 70fbbdfc57)
2025-02-19 21:03:02 +08:00
zzs
863b67e00b feat:发车日报,修改未付款数量取值
(cherry picked from commit de8651140d)
2025-02-19 21:02:48 +08:00
zzs
0758b911e4 feat:销售出库单修改发货日期为审核日志
(cherry picked from commit b15fb4b118)
2025-02-19 21:02:43 +08:00
zzs
ab3c809ea7 feat:报表国贸订单明细增加字段取消数量、有效数量
(cherry picked from commit 337ea83280)
2025-02-19 21:02:36 +08:00
zzs
97768ade11 feat:跟单任务控制台,填写取消数量后,不能有整机生产信息
(cherry picked from commit 23142ed75e)
2025-02-19 21:02:31 +08:00
4 changed files with 117 additions and 20 deletions

View File

@ -472,10 +472,41 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
DataSet transformDataSet = queryTransformDate();
transformDataSet = transformDataSet.leftJoin(dataSet)
.on("tr_fk_vehicleno", "yem_vehicleno")
.select(RptUtil.getDataSetFiledAlias(transformDataSet) ,RptUtil.getDataSetFiledAlias(dataSet))
.finish();
transformDataSet = transformDataSet.select("yem_transformdate, main_detail_id_vno_fk main_detail_id_vno_fk_tr");
dataSet = dataSet.groupBy(new String[]{"main_detail_id_vno_fk"})
.agg(new GroupConcatFunctionByComma(), "yem_vehicleno", "yem_vehicleno")
.finish();
dataSet = dataSet.select("main_detail_id_vno_fk", "yem_vehicleno");
dataSet = dataSet.leftJoin(transformDataSet)
.select(RptUtil.getDataSetFiledAlias(transformDataSet) ,RptUtil.getDataSetFiledAlias(dataSet))
.on("main_detail_id_vno_fk", "main_detail_id_vno_fk_tr")
.finish();
dataSet = dataSet.select("main_detail_id_vno_fk", "yem_vehicleno", "yem_transformdate");
return dataSet;
}
/**
* 查询调拨订单申请单调拨业务日期
* @return
*/
private DataSet queryTransformDate() {
QFilter qFilter = getBaseQFilter();
qFilter.and(new QFilter("yem_es_materialinfo.yem_remark", "!=",""));
ArrayList<String> selectfields = Lists.newArrayList();
selectfields.add("yem_es_materialinfo.yem_remark tr_fk_vehicleno");//整机编号
selectfields.add("yem_bizdate yem_transformdate");//业务日期
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_transferorder", String.join(",", selectfields), qFilter.toArray()).orderBy(new String[]{"yem_transformdate DESC"});
dataSet = dataSet.select("TO_CHAR(yem_transformdate, 'yyyy-MM-dd') yem_transformdate, tr_fk_vehicleno");
return dataSet;
}
@ -562,11 +593,11 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
selectfields.add("yem_es_materialinfo.id dn_detail_id");
selectfields.add("yem_es_materialinfo.yem_sourceentryid ship_detail_id_dn_fk");
selectfields.add("yem_es_materialinfo.yem_coreentryid main_detail_id_dn_fk");
selectfields.add("yem_bizdate");//发货日期
selectfields.add("auditdate");//发货日期
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray());
return dataSet.select("TO_CHAR(yem_bizdate, 'yyyy-MM-dd') yem_shipdate, dn_detail_id, ship_detail_id_dn_fk, main_detail_id_dn_fk, yem_dnbillno");
return dataSet.select("TO_CHAR(auditdate, 'yyyy-MM-dd') yem_shipdate, dn_detail_id, ship_detail_id_dn_fk, main_detail_id_dn_fk, yem_dnbillno");
}

View File

@ -20,10 +20,6 @@ import org.apache.commons.compress.utils.Lists;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.*;
import static com.yem.rf.salescommission.CompleteShipDetailReportPlugin.*;
@ -223,11 +219,21 @@ public class DepartureDailyReportPlugin extends AbstractReportListDataPlugin {
QFilter qFilter = getBaseQFilter(new String[]{"B", "C"});
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_sourcebillid source_order_id_placeexamine_fk");
selectfields.add("yem_es_materialinfo.yem_sourceentryid source_order_id_placeexamine_fk");
selectfields.add("yem_es_materialinfo.yem_qty yem_qty");
return ORM.create().queryDataSet(algoKey, "yem_placeexamine", String.join(",", selectfields), qFilter.toArray());
}
private Set<Long> sumIds(DataSet dataSet) {
DynamicObjectCollection c = ORM.create().toPlainDynamicObjectCollection(dataSet.copy());
Set<Long> orderIds = new HashSet<>();
for (DynamicObject d : c) {
long orderIdPlaceexamineFk = d.getLong("source_order_id_placeexamine_fk");
orderIds.add(orderIdPlaceexamineFk);
}
return orderIds;
}
/**
* 合同已下单下单审批提交或者审核但是合同款项未认领
@ -241,10 +247,11 @@ public class DepartureDailyReportPlugin extends AbstractReportListDataPlugin {
DataSet dataSet;
DataSet placeexamine = queryPlaceExamine(param);//BC下单审批
DataSet salesorder = querySalesOrder(param);
Set<Long> orderIds = sumIds(placeexamine);
DataSet salesorder = querySalesOrder(param, orderIds);
DataSet trackTaskConsole = queryTrackTaskConsole(param);
dataSet = placeexamine.leftJoin(salesorder)
.on("source_order_id_placeexamine_fk", "order_id")
.on("source_order_id_placeexamine_fk", "order_entry_id")
.select(RptUtil.getDataSetFiledAlias(placeexamine), RptUtil.getDataSetFiledAlias(salesorder))
.finish();
dataSet = dataSet.leftJoin(claimedAmt)
@ -259,9 +266,33 @@ public class DepartureDailyReportPlugin extends AbstractReportListDataPlugin {
.groupBy(new String[]{"order_product_id_main_fk"})
.sum("yem_qty")
.finish();
dataSet = dataSet.leftJoin(trackTaskConsole)
.on("order_product_id_main_fk", "tkconsole_product_id_main_fk")
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(trackTaskConsole))
.finish();
dataSet = RptUtil.zeroNullNums(dataSet);
dataSet = dataSet.select("order_product_id_main_fk, yem_qty - yem_cancel_num yem_nooay");
return dataSet;
}
dataSet = dataSet.select("order_product_id_main_fk, yem_qty yem_nooay");
/**
* 查询跟单任务控制台取消数量
* @param param
* @return
*/
private DataSet queryTrackTaskConsole(ReportQueryParam param) {
List<String> selectfields = new ArrayList<>();
selectfields.add("id tkconsole_id");
selectfields.add("billno tkconsole_no");
selectfields.add("yem_es_materialinfo.yem_resourcenog.yem_products.group.id tkconsole_product_id_main_fk");
selectfields.add("yem_es_materialinfo.yem_cancel_num yem_cancel_num");
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null);
dataSet = dataSet
.groupBy(new String[]{"tkconsole_product_id_main_fk"})
.sum("yem_cancel_num")
.finish();
return dataSet;
}
@ -275,10 +306,11 @@ public class DepartureDailyReportPlugin extends AbstractReportListDataPlugin {
DataSet dataSet;
DataSet placeexamine = queryPlaceExamine(param);//BC下单审批
DataSet salesorder = querySalesOrder(param);
Set<Long> orderIds = sumIds(placeexamine);
DataSet salesorder = querySalesOrder(param, orderIds);
dataSet = placeexamine.leftJoin(salesorder)
.on("source_order_id_placeexamine_fk", "order_id")
.on("source_order_id_placeexamine_fk", "order_entry_id")
.select(RptUtil.getDataSetFiledAlias(placeexamine), RptUtil.getDataSetFiledAlias(salesorder))
.finish();
dataSet = dataSet.select("order_id received_order_id, order_product_id_main_fk received_order_product_id_main_fk, yem_qty");
@ -310,16 +342,17 @@ public class DepartureDailyReportPlugin extends AbstractReportListDataPlugin {
return dataSet;
}
private DataSet querySalesOrder(ReportQueryParam param) {
private DataSet querySalesOrder(ReportQueryParam param, Set<Long> orderIds) {
QFilter qFilter = getBaseQFilter();
qFilter.and("yem_es_materialinfo.yem_businesssort", "=", "Z");
qFilter.and("yem_es_materialinfo.id", "in", orderIds);
List<String> selectfields = new ArrayList<>();
selectfields.add("id order_id");
selectfields.add("yem_es_materialinfo.id order_entry_id");
selectfields.add("billno salesorder_no");
selectfields.add("yem_es_materialinfo.yem_resourcenog.yem_products.group.id order_product_id_main_fk");
selectfields.add("yem_es_materialinfo.yem_qty yem_qty");
return ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
}

View File

@ -108,11 +108,12 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
resDataSet = resDataSet.addField("0.0", "yem_inventoryqty");
DataSet where = resDataSet.where(sb.toString());
DataSet select = where.select(String.join(",", RptUtil.getDataSetFiledAlias(where)) +
", TO_CHAR(forderdate, 'yyyy-MM-dd') yem_orderdate");
resDataSet = fillWithCMMPQty(select);
return resDataSet.distinct();
resDataSet = fillWithCMMPQty(where);
DataSet select = resDataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(where)) +
", TO_CHAR(forderdate, 'yyyy-MM-dd') yem_orderdate, yem_reqqty - yem_cancel_num yem_effective_num");
return select.distinct();
}
/**
@ -224,6 +225,7 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
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_es_materialinfo.yem_cancel_num yem_cancel_num");//取消数量
detail.add("yem_nameplatelogo.id yem_nameplatelogo");//铭牌标识
detail.add("yem_nameplatetype yem_nameplatetype");//铭牌类型

View File

@ -5,6 +5,11 @@ import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.validate.AbstractValidator;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author zhouc
* @date 2023/10/11 19:12
@ -37,6 +42,32 @@ public class TracktaskconsoleSavevalidator extends AbstractValidator {
}
}
}
StringBuilder sb = new StringBuilder();
DynamicObjectCollection c = dataEntity.getDynamicObjectCollection("yem_es_materialinfo");
Map<Long, Integer> cancelQty = new LinkedHashMap<>();
for (DynamicObject d : c) {
long id = d.getLong("id");
BigDecimal cancel_num = d.getBigDecimal("yem_cancel_num");
if (cancel_num.compareTo(BigDecimal.ZERO) > 0) {
cancelQty.put(id, c.indexOf(d));
}
}
DynamicObjectCollection backC = dataEntity.getDynamicObjectCollection("yem_es_salesorder_r");
for (DynamicObject d : backC) {
long entrtyid = d.getLong("yem_entrtyid");
if (cancelQty.containsKey(entrtyid)) {
Integer idx = cancelQty.get(entrtyid);
DynamicObjectCollection subC = d.getDynamicObjectCollection("yem_es_salesorder_z");
if (!subC.isEmpty()) {
sb.append(String.format("商品明细第 %s 行已维护取消数量,不允许维护整机生产信息!", idx + 1)).append("\r\n");
}
}
}
if (sb.length() > 0) {
this.addErrorMessage(dataEntitie, sb.toString());
}
}
}
}