Compare commits
8 Commits
7e7361a44e
...
5c49f594cf
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5c49f594cf | ||
![]() |
35bf4911db | ||
![]() |
f76ffc41a1 | ||
![]() |
106270e8de | ||
![]() |
863b67e00b | ||
![]() |
0758b911e4 | ||
![]() |
ab3c809ea7 | ||
![]() |
97768ade11 |
@ -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");
|
||||
}
|
||||
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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");//铭牌类型
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user