Compare commits

...

10 Commits

Author SHA1 Message Date
zzs01@yunemao.com
7f3dcb4e65 Merge branch 'fix-report-zzs' 2024-09-06 15:34:43 +08:00
zzs01@yunemao.com
51d8af6a7d change:整机发运明细表 2024-09-06 15:34:25 +08:00
ljw
fbe6d5d043 配件发货明细表(未发货) 2024-09-06 15:23:03 +08:00
zzs01@yunemao.com
3a8c70150c Merge branch 'fix-report-zzs' 2024-09-06 14:02:36 +08:00
ljw
50f0645265 发运明细表(提成)修复 2024-09-06 14:02:23 +08:00
ljw
13f5145fc2 明细报表开发 2024-09-06 14:02:23 +08:00
zzs01@yunemao.com
b5900ccd56 change:整机发运明细表 2024-09-06 10:22:15 +08:00
a97d42f812 fix:国贸订单详情 2024-09-05 22:11:12 +08:00
fc33b58c8e fix:报表产品分类多选 2024-09-05 21:39:16 +08:00
1d42c39d8c change:报表产品分类多选 2024-09-05 20:44:19 +08:00
8 changed files with 423 additions and 18 deletions

View File

@ -20,8 +20,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import static com.yem.rf.utils.RFUtils.formatDate;
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
import static com.yem.rf.utils.RFUtils.*;
/**
* @Description: 整机发运明细表
@ -61,6 +60,8 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
Date start = filter.getDate("yem_fshipdate_start");
Date end = filter.getDate("yem_fshipdate_end");
String fisshiped = filter.getString("yem_fisshiped");
StringBuilder sb = new StringBuilder();
sb.append("1=1");
if (YEM.isNotEmpty(start)) {
@ -69,9 +70,20 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
if (YEM.isNotEmpty(end)) {
sb.append(" AND TO_DATE(yem_shipdate, 'yyyy-MM-dd') <= ").append(String.format("TO_DATE('%s','yyyy-MM-dd')", formatDate(end)));
}
if (YEM.isNotEmpty(fisshiped)) {
if ("A".equals(fisshiped)) {//已发货
sb.append(" AND yem_dnbillno IS NOT NULL AND yem_dnbillno != '' ");
}
if ("B".equals(fisshiped)) {//未发货
sb.append(" AND yem_dnbillno IS NULL OR yem_dnbillno = ''");
}
}
dataSet = dataSet.where(sb.toString());
dataSet = dataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(dataSet)) + "," +
"CASE WHEN yem_dnbillno IS NOT NULL AND yem_dnbillno != '' THEN '是' ELSE '否' END yem_isshiped");
return dataSet;
}
@ -107,6 +119,10 @@ public class CompleteShipDetailReportPlugin extends AbstractReportListDataPlugin
if (producttype > 0) {
qFilter.and("yem_bd_products.id", "=", producttype);
}
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
if (!fproducttypem.isEmpty()) {
qFilter.and("yem_bd_products.id", "IN", fproducttypem);
}
ArrayList<String> selectfields = Lists.newArrayList();
selectfields.add("yem_es_materialinfo.id main_detail_id");
selectfields.add("id main_id");

View File

@ -17,8 +17,7 @@ import kd.bos.servicehelper.QueryServiceHelper;
import java.math.BigDecimal;
import java.util.*;
import static com.yem.rf.utils.RFUtils.formatDate;
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
import static com.yem.rf.utils.RFUtils.*;
/**
* @Description: TODO
@ -107,6 +106,10 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
sb.append(" AND yem_products = ").append(producttype);
}
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
String concated = concatFBaseDataFilter(fproducttypem, "yem_products");
sb.append(concated);
resDataSet = resDataSet.addField("0.0", "yem_inventoryqty");
DataSet where = resDataSet.where(sb.toString());
@ -168,16 +171,8 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
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");
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
DataSet proReqBill = queryOrderProReqBill(param);
dataSet = dataSet.leftJoin(proReqBill)
.on("order_plan_id", "order_req_main_detail_fk")
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(proReqBill))
.finish();
return dataSet;
return ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
}
private DataSet queryOrderProReqBill(ReportQueryParam param) {
@ -237,11 +232,22 @@ public class ITCOrderDetailsReportPlugin extends AbstractReportListDataPlugin {
private DataSet queryTrackTaskConsoleProcEntry(ReportQueryParam param) {
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_es_salesorder_r.id task_order_plan_id");
selectfields.add("yem_es_salesorder_r.yem_entrtyid plan_proc_detail_fk");
selectfields.add("yem_es_salesorder_r.yem_stockway yem_ifreform");
// selectfields.add("TO_CHAR(yem_es_salesorder_r.yem_yieldetacdate, 'yyyy-MM-dd') yem_prodfeedbackdate");//预计完成时间
selectfields.add("TO_CHAR(yem_es_salesorder_r.yem_yieldfactacdate, 'yyyy-MM-dd') yem_plancompdate");//实际完成时间
return ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null);
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_tracktaskconsole", String.join(",", selectfields), null);
DataSet proReqBill = queryOrderProReqBill(param);
dataSet = dataSet.leftJoin(proReqBill)
.on("task_order_plan_id", "order_req_main_detail_fk")
.select(RptUtil.getDataSetFiledAlias(dataSet), RptUtil.getDataSetFiledAlias(proReqBill))
.finish();
return dataSet;
}
/**

View File

@ -18,8 +18,7 @@ import java.util.List;
import static com.yem.rf.salescommission.CompleteShipDetailReportPlugin.queryGathering_ClaimDate;
import static com.yem.rf.salescommission.CompleteShipDetailReportPlugin.querySalesOrder_PayRate;
import static com.yem.rf.utils.RFUtils.formatDate;
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
import static com.yem.rf.utils.RFUtils.*;
/**
* @Description: TODO
@ -116,6 +115,10 @@ public class SalesCommissionReportPlugin extends AbstractReportListDataPlugin {
where.append(" AND yem_salesman = ").append(foperator);
}
List<Long> fproducttypem = getFBaseDataIds(filter, "yem_fproducttypem");
String concated = concatFBaseDataFilter(fproducttypem, "yem_products");
where.append(concated);
resDataSet = resDataSet.where(where.toString());
return resDataSet;

View File

@ -95,7 +95,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin {
StringBuilder sb = new StringBuilder();
sb.append("yem_customsdeclaration1 = 'A'");
sb.append("yem_customsdeclaration1 = 'B'");
if (YEM.isNotEmpty(yemContract)) {
sb.append(" AND yem_contractnumber like '").append("%").append(yemContract).append("%").append("'");
}

View File

@ -0,0 +1,274 @@
package com.yem.rf.salescommission;
import com.yem.wm.utils.RptUtil;
import com.yem.wm.utils.YEM;
import kd.bos.algo.DataSet;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.report.AbstractReportListDataPlugin;
import kd.bos.entity.report.FilterInfo;
import kd.bos.entity.report.ReportQueryParam;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import java.util.*;
import static com.yem.rf.utils.RFUtils.getBaseQFilter;
import static kd.fi.er.report.query.TripOrderRpt.algoKey;
/**
* @author ljw
* @date 2024/9/5 16:06
* @description SparepartsNotShippedPlugin
*/
public class SparepartsNotShippedPlugin extends AbstractReportListDataPlugin {
@Override
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
DataSet resDataSet;
DataSet yemEsSalesorder = yemEsSalesorder();
DataSet yemEsStoragetrans = yemEsStoragetrans();
DataSet yemImEncasement = yemImEncasement();
DataSet yemGathering = yemGathering();
DataSet yemShippingdetails = yemShippingdetails();
resDataSet = yemEsSalesorder.leftJoin(yemEsStoragetrans).on("queryDeliverNoticeid", "yem_corebillid").select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemEsStoragetrans)).finish();
resDataSet = resDataSet.leftJoin(yemImEncasement).on("queryDeliverNoticeid", "encasementcorebillid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemImEncasement)).finish();
resDataSet = resDataSet.leftJoin(yemGathering).on("queryDeliverNoticeid", "yem_titleid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemGathering)).finish();
resDataSet = resDataSet.leftJoin(yemShippingdetails).on("queryDeliverNoticeid", "yemShippingdetailsyem_sourcebillid").select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemShippingdetails)).finish();
resDataSet = resDataSet.distinct();
resDataSet = RptUtil.zeroNullNums(resDataSet);
DataSet selected = resDataSet.select(String.join(",", RptUtil.getDataSetFiledAlias(resDataSet)) +
",(yem_offeramounts-yem_theamountpaid) yem_theamountowed" +
",CASE WHEN (yem_contractamount = yem_salcontractclaamt) THEN paymenttime ELSE null END yem_bizdate");
selected = selected.removeFields("paymenttime");
FilterInfo filter = reportQueryParam.getFilter();
String yemContract = filter.getString("yem_billnos");
DynamicObject yemClient = filter.getDynamicObject("yem_clientname");
DynamicObjectCollection yem_bd_producttype = filter.getDynamicObjectCollection("yem_bd_producttype");
StringBuilder sb = new StringBuilder();
DataSet result = selected.where("yem_billno != ''");
sb.append("yem_billno != ''");
if (YEM.isNotEmpty(yemContract)) {
sb.append(" AND delivernoticebillno like '").append("%").append(yemContract).append("%").append("'");
}
if (YEM.isNotEmpty(yemClient)) {
sb.append(" AND yem_client = ").append("'" + yemClient.getString("name") + "'");
}
if (YEM.isNotEmpty(yem_bd_producttype)){
List<String> names = new ArrayList<>();
for (DynamicObject dynamicObject : yem_bd_producttype) {
String name = dynamicObject.getString("name");
names.add(name);
}
Map<String,Object> map = new HashMap<>();
map.put("var",names);
result = result.filter("yem_bd_products in var",map);
}
DataSet where = result.where(sb.toString());
return where.distinct();
}
/**
* 发运明细单
*
* @return
*/
private DataSet yemShippingdetails() {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_iswithaccessories yem_boardaccessor");
selectfields.add("yem_transportstyle.name yem_shippingmethod");
selectfields.add("yem_sourcebillid yemShippingdetailsyem_sourcebillid");
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_shippingdetails", String.join(",", selectfields), qFilter.toArray());
yemShippingdetails = yemShippingdetails.select(String.join(",", RptUtil.getDataSetFiledAlias(yemShippingdetails)) +
",CASE WHEN yem_boardaccessor = 'A' THEN '是' ELSE '否' END yem_boardaccessory");
yemShippingdetails = yemShippingdetails
.groupBy(new String[]{"yemShippingdetailsyem_sourcebillid"})
.groupConcat("yem_boardaccessory", "yem_boardaccessory", "")
.groupConcat("yem_shippingmethod", "yem_shippingmethod", "")
.finish();
return yemShippingdetails;
}
/**
* 收款单金额对比
*
* @return
*/
private DataSet yemGathering() {
QFilter qFilter = getBaseQFilter(new String[]{"B", "C"});
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id yem_titleid");//收款单的合同号id
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractclaamt yem_salcontractclaamt");//收款单的合同金额
DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfields), qFilter.toArray());
yemShippingdetails = yemShippingdetails.groupBy(new String[]{"yem_titleid"})
.sum("yem_salcontractclaamt")
.finish();
yemShippingdetails = getYemShippingdetails(qFilter, yemShippingdetails);
return yemShippingdetails;
}
/**
* 收款单认领时间
*
* @param qFilter
* @param yemShippingdetails
* @return
*/
private static DataSet getYemShippingdetails(QFilter qFilter, DataSet yemShippingdetails) {
List<String> selectfield = new ArrayList<>();
selectfield.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id yem_salcontractnoid");//收款单的合同号id
selectfield.add("yem_bizdate paymenttimes");//
DataSet yemShippingdetail = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfield), qFilter.toArray());
yemShippingdetail = yemShippingdetail.groupBy(new String[]{"yem_salcontractnoid"}).max("paymenttimes").finish();
yemShippingdetail = yemShippingdetail.addField("TO_CHAR(paymenttimes, 'yyyy-MM-dd') paymenttime","paymenttime");
yemShippingdetails = yemShippingdetail.leftJoin(yemShippingdetails)
.on("yem_salcontractnoid", "yem_titleid")
.select(RptUtil.getDataSetFiledAlias(yemShippingdetail), RptUtil.getDataSetFiledAlias(yemShippingdetails))
.finish();
DataSet claimedAmt = queryGathering_ClaimedAmt();
yemShippingdetails = yemShippingdetails.leftJoin(claimedAmt).on("yem_salcontractnoid","salesorderid")
.select(RptUtil.getDataSetFiledAlias(yemShippingdetails), RptUtil.getDataSetFiledAlias(claimedAmt)).finish();
return yemShippingdetails;
}
/**
* 查询合同各个款项性质的已认领金额合计
*
* @return
*/
private static DataSet queryGathering_ClaimedAmt() {
QFilter qFilter = getBaseQFilter(new String[]{"B", "C"});
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_salcontractno.id salesorderid");
selectfields.add("yem_receiptdetail.yem_claimdetail.yem_claimamt yem_theamountpaid");//收款认领金额
DataSet dataSet = ORM.create().queryDataSet(algoKey, "yem_gathering", String.join(",", selectfields), qFilter.toArray());
dataSet = dataSet
.groupBy(new String[]{"salesorderid"})
.sum("yem_theamountpaid")
.finish();
return dataSet;
}
/**
* 装箱单
*
* @return
*/
private DataSet yemImEncasement() {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_corebillid encasementcorebillid");
selectfields.add("yem_completionstatuspj yem_completionstatuspj");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_im_encasement", String.join(",", selectfields), qFilter.toArray());
return yemEsSalesorder;
}
/**
* 订舱通知单
*
* @return
*/
private DataSet yemEsStoragetrans() {
QFilter qFilter = getBaseQFilter();
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_corebillid yem_corebillid");
selectfields.add("yem_origcurrepremium yem_origcurrepremium");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray());
yemEsSalesorder = yemEsSalesorder.groupBy(new String[]{"yem_corebillid"}).sum("yem_origcurrepremium").finish();
return yemEsSalesorder;
}
/**
* 外销合同
*
* @return
*/
private DataSet yemEsSalesorder() {
QFilter qFilter = getBaseQFilter();
qFilter.and("yem_es_materialinfo.yem_businesssort", QCP.equals, "P");
List<String> selectfields = new ArrayList<>();
selectfields.add("id queryDeliverNoticeid");
selectfields.add("yem_operator yem_salesman");
selectfields.add("yem_billtype.name yem_billtype");
selectfields.add("billno yem_billno");
selectfields.add("yem_customer yem_customer");
selectfields.add("yem_priceitem yem_priceitem");
selectfields.add("yem_offeramount yem_offeramount");
selectfields.add("yem_offeramount yem_offeramounts");
selectfields.add("yem_interestamt yem_interestamt");
selectfields.add("yem_creditamt yem_creditamt");
selectfields.add("yem_fundpoolamt yem_fundpoolamt");
selectfields.add("yem_premiumamt yem_premiumamt");
selectfields.add("yem_customer.name yem_client");
selectfields.add("yem_seafreight yem_seafreight");
selectfields.add("yem_landcarrycost yem_landcarrycost");
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");
selectfields.add("yem_currency.name yem_currency");
selectfields.add("yem_companyname yem_companyname");
selectfields.add("yem_bd_products.name yem_bd_products");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
yemEsSalesorder = yemEsSalesorder.distinct();
yemEsSalesorder = yemEsSalesorder.select(String.join(",", RptUtil.getDataSetFiledAlias(yemEsSalesorder)) +
",yem_seafreight+yem_landcarrycost+yem_airliftcost+yem_expresscost yem_freight");
DataSet rightDataSet = yemEsSalesorders();
yemEsSalesorder = yemEsSalesorder.leftJoin(rightDataSet).on("queryDeliverNoticeid", "Noticeid")
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(rightDataSet)).finish();
DataSet yemPlaceexamine = yemPlaceexamine();
yemEsSalesorder = yemEsSalesorder.leftJoin(yemPlaceexamine).on("queryDeliverNoticeid","yem_sourcebillid")
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemPlaceexamine)).finish();
DataSet yemEsDelivernotice = yemEsDelivernotice();
yemEsSalesorder = yemEsSalesorder.leftJoin(yemEsDelivernotice).on("queryDeliverNoticeid","delivernoticecorebillid")
.select(RptUtil.getDataSetFiledAlias(yemEsSalesorder), RptUtil.getDataSetFiledAlias(yemEsDelivernotice)).finish();
yemEsSalesorder = yemEsSalesorder.where("billstatus = 'B' OR billstatus = 'C'");
yemEsSalesorder = yemEsSalesorder.where("delivernoticebillstatus != 'C'");
yemEsSalesorder = yemEsSalesorder.distinct();
return yemEsSalesorder;
}
private DataSet yemEsDelivernotice() {
QFilter qFilter = getBaseQFilter(new String[]{"A","B"});
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_corebillid delivernoticecorebillid");
selectfields.add("billstatus delivernoticebillstatus");
selectfields.add("billno delivernoticebillno");
selectfields.add("TO_CHAR(auditdate, 'yyyy-MM-dd') yem_shipdate");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray());
return yemEsSalesorder;
}
private DataSet yemPlaceexamine() {
QFilter qFilter = getBaseQFilter(new String[]{"B","C"});
List<String> selectfields = new ArrayList<>();
selectfields.add("yem_sourcebillid yem_sourcebillid");
selectfields.add("billstatus billstatus");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_placeexamine", String.join(",", selectfields), qFilter.toArray());
return yemEsSalesorder;
}
/**
* 外销合同
*
* @return
*/
private DataSet yemEsSalesorders() {
QFilter qFilter = getBaseQFilter();
qFilter.and("yem_es_materialinfo.yem_businesssort", QCP.equals, "P");
List<String> selectfields = new ArrayList<>();
selectfields.add("id Noticeid");
selectfields.add("yem_es_materialinfo.yem_qty yem_qty");
DataSet yemEsSalesorder = ORM.create().queryDataSet(algoKey, "yem_es_salesorder", String.join(",", selectfields), qFilter.toArray());
yemEsSalesorder = yemEsSalesorder.groupBy(new String[]{"Noticeid"}).sum("yem_qty").finish();
return yemEsSalesorder;
}
}

View File

@ -1,10 +1,12 @@
package com.yem.rf.utils;
import com.yem.wm.utils.YEM;
import kd.bos.algo.DataSet;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.metadata.IDataEntityProperty;
import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
import kd.bos.entity.report.FilterInfo;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QFilter;
@ -87,4 +89,35 @@ public class RFUtils {
}
return list;
}
public static List<Long> getFBaseDataIds(FilterInfo filter, String propName) {
List<Long> ids = new ArrayList<>();
DynamicObjectCollection collection = filter.getDynamicObjectCollection(propName);
if (collection != null) {
for (DynamicObject d : collection) {
long id = d.getLong("id");
ids.add(id);
}
}
return ids;
}
public static String concatFBaseDataFilter(List<Long> ids, String propName) {
StringBuilder sb = new StringBuilder();
if (YEM.isNotEmpty(ids)) {
sb.append(" AND ").append(propName).append(" IN (");
for (Long i : ids) {
int idx = ids.indexOf(i);
if (idx == ids.size() - 1) {
sb.append(i);
} else {
sb.append(i).append(",");
}
}
sb.append(")");
}
return sb.toString();
}
}

View File

@ -0,0 +1,74 @@
package com.yem.wm.im.materialpriceing;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import java.math.BigDecimal;
/**
* @author ljw
* @date 2024/9/6 10:05
* @description materialPriceingPlugin
*/
public class materialPriceingPlugin extends AbstractBillPlugIn {
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
super.propertyChanged(e);
String name = e.getProperty().getName();
ChangeData[] changeSet = e.getChangeSet();
switch (name) {
case "yem_from":
yemFrom(e);
break;
case "yem_reach":
yemReach(e);
break;
}
}
/**
* 至不允许小于等于从
*
* @param e
*/
private void yemReach(PropertyChangedArgs e) {
ChangeData changeData = e.getChangeSet()[0];
int rowIndex = changeData.getRowIndex();
int parentRowIndex = changeData.getParentRowIndex();
BigDecimal newValue = (BigDecimal) changeData.getNewValue();
DynamicObjectCollection yemBdLogistics = this.getModel().getEntryEntity("yem_entryentity");
BigDecimal bigDecimal = yemBdLogistics.get(parentRowIndex).getDynamicObjectCollection("yem_subentryentity").get(rowIndex).getBigDecimal("yem_from");
if (bigDecimal.compareTo(newValue) >= 0) {
this.getModel().setValue("yem_reach",0,rowIndex,parentRowIndex);
this.getView().showMessage("至不允许小于等于从!!!");
}
}
/**
* 从不能小于前一行的至
*
* @param e
*/
private void yemFrom(PropertyChangedArgs e) {
ChangeData changeData = e.getChangeSet()[0];
int rowIndex = changeData.getRowIndex();
if (rowIndex - 1 < 0) {
return;
}
int parentRowIndex = changeData.getParentRowIndex();
BigDecimal newValue = (BigDecimal) changeData.getNewValue();
DynamicObjectCollection yemBdLogistics = this.getModel().getEntryEntity("yem_entryentity");
BigDecimal bigDecimal = yemBdLogistics.get(parentRowIndex).getDynamicObjectCollection("yem_subentryentity").get(rowIndex - 1).getBigDecimal("yem_reach");
if (bigDecimal.compareTo(newValue) > 0) {
this.getModel().setValue("yem_from",0,rowIndex,parentRowIndex);
this.getView().showMessage("从不能小于前一行的至!!!");
}
}
}

View File

@ -24,7 +24,6 @@ public class Application {
cosmic.setServerIP("10.64.112.152");
cosmic.setFileServerPathIPAndPort("","");
cosmic.setConfigUrl("10.64.112.152:2181","zookeeper","Cosmic@5092");
cosmic.set("login.type","STANDALONE");
// 134
// cosmic.setClusterNumber("yxzg-prod");