From d90e10155958e3f05d416b58f653313f3ef6f3c9 Mon Sep 17 00:00:00 2001 From: ljw Date: Sat, 21 Sep 2024 15:22:06 +0800 Subject: [PATCH 01/24] =?UTF-8?q?fix:=E9=85=8D=E4=BB=B6=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E5=BA=93=E7=A6=81=E7=94=A8=E6=8C=89=E9=92=AE=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit a878e6015d9363b02d40513e4fbd920bdc89a189) --- .../wm/syn/eas/api/OperationalUniversal.java | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/yem/wm/syn/eas/api/OperationalUniversal.java b/src/main/java/com/yem/wm/syn/eas/api/OperationalUniversal.java index 60b27941..5d94fb44 100644 --- a/src/main/java/com/yem/wm/syn/eas/api/OperationalUniversal.java +++ b/src/main/java/com/yem/wm/syn/eas/api/OperationalUniversal.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.NotNull; import javax.validation.Valid; import java.io.IOException; import java.util.List; +import java.util.Map; /** * @author zhouc @@ -97,37 +98,37 @@ public class OperationalUniversal { /** * 配件价格库禁用按钮调用 - * - * @param billno + * @param list * @return * @throws IOException */ @ApiPostMapping("/PriceLibraryDisable") - public CustomApiResult PriceLibraryDisable(@NotNull @ApiParam("物料编码") @Valid List number, - @NotNull @ApiParam("单据编号(配件)") @Valid List billno) throws IOException { + public CustomApiResult PriceLibraryDisable(@NotNull @ApiParam("List>>") @Valid List>> list) throws IOException { try { - for (String string : billno) { - QFilter qFilter = new QFilter("billno", QCP.equals, string); - qFilter.and(new QFilter("yem_billtype.number", QCP.equals, "yem_pricelibrary_PJ")); - DynamicObject bill = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", "id", qFilter.toArray()); - if (bill != null) { - DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bill.getPkValue(), bill.getDynamicObjectType().getName()); - if (dynamicObject != null) { - DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("yem_accessory"); - for (DynamicObject object : dynamicObjectCollection) { - DynamicObject yem_material = object.getDynamicObject("yem_material"); - if (yem_material != null) { - String yemMaterialString = yem_material.getString("number"); - if (number.contains(yemMaterialString)) { - object.set("yem_billstatusfield", "A"); + for (Map> string : list) { + for (String map : string.keySet()) { + QFilter qFilter = new QFilter("billno", QCP.equals, map); + qFilter.and(new QFilter("yem_billtype.number", QCP.equals, "yem_pricelibrary_PJ")); + DynamicObject bill = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", "id", qFilter.toArray()); + if (bill != null) { + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bill.getPkValue(), bill.getDynamicObjectType().getName()); + if (dynamicObject != null) { + DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("yem_accessory"); + for (DynamicObject object : dynamicObjectCollection) { + DynamicObject yem_material = object.getDynamicObject("yem_material"); + if (yem_material != null) { + String yemMaterialString = yem_material.getString("number"); + if (string.get(map).contains(yemMaterialString)) { + object.set("yem_billstatusfield", "A"); + } } } + SaveServiceHelper.update(dynamicObject); + } else { + String errorMessage = "【配件价格库】不存在编码为【" + string.get(map) + "】的操作编码,请核对后重试!"; + CustomApiResult fail = CustomApiResult.fail("501", errorMessage); + return fail; } - SaveServiceHelper.update(dynamicObject); - } else { - String errorMessage = "【配件价格库】不存在编码为【" + billno + "】的操作编码,请核对后重试!"; - CustomApiResult fail = CustomApiResult.fail("501", errorMessage); - return fail; } } } From 59f7649d36518fcbffdac8076db23d88d8bc5da6 Mon Sep 17 00:00:00 2001 From: ljw Date: Sat, 21 Sep 2024 15:49:27 +0800 Subject: [PATCH 02/24] =?UTF-8?q?fix:=E5=8F=91=E8=BF=90=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E8=A1=A8=E6=8A=A5=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 6b2bb8715efa74672465d6ef36f4269fcec4e39f) --- .../java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java b/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java index 09dde9cd..4af17796 100644 --- a/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java +++ b/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java @@ -269,7 +269,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { List selectfields = new ArrayList<>(); selectfields.add("id delivernoticeid"); selectfields.add("TO_CHAR(yem_bizdate, 'yyyy-MM-dd') yem_datebusiness");//发货日期 - selectfields.add("Year(yem_bizdate) yem_annual");//发货日期 + selectfields.add("yem_bizdate yem_annual");//发货日期 selectfields.add("yem_sourcebillid delivernoticeyem_sourcebillid"); DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_delivernotice", String.join(",", selectfields), qFilter.toArray()); return yemShippingdetails; From 3648ca13045039ffc19eb56944a712855722b30b Mon Sep 17 00:00:00 2001 From: zhouc Date: Sat, 21 Sep 2024 18:07:02 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=8F=98=E5=8C=96=E5=88=B7=E6=96=B0=E6=94=B6?= =?UTF-8?q?=E6=AC=BE=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java index 93408be3..cc6b0c19 100644 --- a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java +++ b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java @@ -537,15 +537,15 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef case "yem_customclass": carryReportCategoryAndHsCode(this.getModel(), this.getView(), rowIndex, "yem_customclass"); break; - case "yem_qty": +// case "yem_qty": case "yem_offeramount": DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_es_salescontrac_s"); for (DynamicObject dynamicObject : collection) { BigDecimal raprate = dynamicObject.getBigDecimal("yem_raprate"); BigDecimal offeramount = dataEntity.getBigDecimal("yem_offeramount"); dynamicObject.set("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate)); - this.getView().updateView("yem_es_salescontrac_s"); } + this.getView().updateView("yem_rapamt"); break; case "yem_bigcabinetnumbers": countBigCabinetQty(model);//汇总表头大柜数量 From 1e2a58675cb3a210945fc0b687697ab7dacf28b7 Mon Sep 17 00:00:00 2001 From: zhouc Date: Sat, 21 Sep 2024 19:04:38 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=8F=98=E5=8C=96=E5=88=B7=E6=96=B0=E6=94=B6?= =?UTF-8?q?=E6=AC=BE=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shippingdetails/form/ShippingDetailsFormPlugin.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java index cc6b0c19..8648584c 100644 --- a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java +++ b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java @@ -493,6 +493,7 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef super.propertyChanged(e); String name = e.getProperty().getName(); IDataModel model = this.getModel(); + IFormView view = this.getView(); Object newValue = e.getChangeSet()[0].getNewValue(); DynamicObject dataEntity = model.getDataEntity(true); DynamicObjectCollection yem_es_materialinfo = dataEntity.getDynamicObjectCollection("yem_es_materialinfo"); @@ -537,15 +538,14 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef case "yem_customclass": carryReportCategoryAndHsCode(this.getModel(), this.getView(), rowIndex, "yem_customclass"); break; -// case "yem_qty": + case "yem_qty": case "yem_offeramount": - DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_es_salescontrac_s"); + DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_es_salescontrac_s"); for (DynamicObject dynamicObject : collection) { BigDecimal raprate = dynamicObject.getBigDecimal("yem_raprate"); BigDecimal offeramount = dataEntity.getBigDecimal("yem_offeramount"); - dynamicObject.set("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate)); + model.setValue("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate),0); } - this.getView().updateView("yem_rapamt"); break; case "yem_bigcabinetnumbers": countBigCabinetQty(model);//汇总表头大柜数量 From e6f3127a8377ef1b4ac021bf47b01e7128a6f48b Mon Sep 17 00:00:00 2001 From: zhouc Date: Sat, 21 Sep 2024 19:36:09 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=80=BC=E6=9B=B4=E6=96=B0=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=20=20=E6=8F=90=E4=BA=A4=E5=90=8E=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../es/shippingdetails/form/ShippingDetailsFormPlugin.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java index 8648584c..45eb6084 100644 --- a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java +++ b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java @@ -246,6 +246,9 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef collect(dataEntity); SaveServiceHelper.save(new DynamicObject[]{dataEntity}); } + if("submit".equals(key)){ + this.getView().invokeOperation("refresh"); + } } @@ -544,8 +547,9 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef for (DynamicObject dynamicObject : collection) { BigDecimal raprate = dynamicObject.getBigDecimal("yem_raprate"); BigDecimal offeramount = dataEntity.getBigDecimal("yem_offeramount"); - model.setValue("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate),0); + dynamicObject.set("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate)); } + this.getView().invokeOperation("save"); break; case "yem_bigcabinetnumbers": countBigCabinetQty(model);//汇总表头大柜数量 From cd3b39b2ed0f1c2f994fadbdd72a53228e8664af Mon Sep 17 00:00:00 2001 From: zhouc Date: Sat, 21 Sep 2024 20:35:07 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B4=B9=E7=94=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=90=BA=E5=B8=A6=E5=86=85=E9=99=86=E8=BF=90?= =?UTF-8?q?=E8=BE=93=E8=B4=B9=E3=80=81=E6=B8=AF=E6=9D=82=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../es/salesorder/from/SalesOrderZJEdit.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java index dea85e87..ba8ae375 100644 --- a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java +++ b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java @@ -87,7 +87,7 @@ public class SalesOrderZJEdit extends AbstractBillPlugIn implements Plugin, Befo OperationStatus status = fsp.getStatus(); String formId = fsp.getFormId(); String appId = fsp.getAppId(); - if (OperationStatus.ADDNEW == status&&appId.equals("yem_es")) { + if (OperationStatus.ADDNEW == status && appId.equals("yem_es")) { SplitContainer splitContainer = this.getControl("yem_splitcontainerap"); splitContainer.setCollapse("yem_splitpanelap1", true); QFilter qFilter = null; @@ -193,6 +193,7 @@ public class SalesOrderZJEdit extends AbstractBillPlugIn implements Plugin, Befo String name = e.getProperty().getName(); ChangeData changeData = e.getChangeSet()[0]; Object oldValue = changeData.getOldValue(); + Object newValue = changeData.getNewValue(); int rowIndex = changeData.getRowIndex(); int ParentRow = changeData.getParentRowIndex(); DynamicObject dataEntity = model.getDataEntity(); @@ -526,10 +527,30 @@ public class SalesOrderZJEdit extends AbstractBillPlugIn implements Plugin, Befo break; case "yem_tonsqty": case "yem_port": - case "yem_padexpense": + case "yem_shippingmethod": ClientUtils.calcInlandTransportationAmt(model, rowIndex);//计算内陆运费 ClientUtils.calculatePortAmt(model, rowIndex);//计算港杂费 break; + case "yem_padexpense": + DynamicObject padexpense = (DynamicObject) newValue; + if (padexpense != null) { + String number = padexpense.getString("number"); + //内陆运输费 + if ("FYXM0023.11".equals(number)) { + DynamicObjectCollection entryRows = this.getModel().getEntryEntity("yem_es_materialinfo"); + for(int i = 0;i Date: Sat, 21 Sep 2024 20:36:20 +0800 Subject: [PATCH 07/24] =?UTF-8?q?fix:=E5=8F=91=E8=BF=90=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E8=A1=A8=E6=8A=A5=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ShipmentsChedulePlugin.java | 98 ++++++++----------- 1 file changed, 43 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java b/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java index 4af17796..dcea6f23 100644 --- a/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java +++ b/src/main/java/com/yem/rf/salescommission/ShipmentsChedulePlugin.java @@ -6,27 +6,20 @@ import com.yem.wm.utils.YEM; import com.yem.wm.utils.groupfunc.GroupConcatFunction; import com.yem.wm.utils.groupfunc.GroupConcatFunctionByComma; import kd.bos.algo.*; -import kd.bos.algo.input.CollectionInput; import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.dataentity.entity.DynamicObjectCollection; -import kd.bos.entity.report.AbstractReportColumn; 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 kd.bos.servicehelper.BusinessDataServiceHelper; -import kd.bos.servicehelper.QueryServiceHelper; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import static com.yem.rf.utils.RFUtils.formatDate; import static com.yem.rf.utils.RFUtils.getBaseQFilter; -import static kd.fi.er.report.query.TripOrderRpt.algoKey; /** * @author ljw @@ -38,35 +31,14 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { @Override public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable { DataSet resDataSet; - DataSet rows = yemEsDeclaredocx(reportQueryParam); DataSet delivernotice = queryDeliverNotice(reportQueryParam); DataSet yemImTradeapp = yem_im_tradeapp(reportQueryParam); DataSet yemsDeclaredocx = yemsDeclaredocx(reportQueryParam); - DataSet yemContainernumber = yemContainernumber(reportQueryParam); - DataSet yemContainer = yemContainer(reportQueryParam); + DataSet yemContainer = yemContainer(); DataSet yem_es_delivernotice = yem_es_delivernotice(reportQueryParam); - - rows = rows.select(String.join(",", RptUtil.getDataSetFiledAlias(rows)) + - ",case when yem_bringbillno != '' THEN yem_bringbillno else yem_realbringbillno end yem_ladingnumber"); - yemContainernumber = yemContainernumber.select(String.join(",", RptUtil.getDataSetFiledAlias(yemContainernumber)) + - ",case when yem_noticeno != '' THEN yem_noticeno else yem_housebillofladnum end yem_ladingnumbers"); - //出口报关 - - yemsDeclaredocx = yemsDeclaredocx - .groupBy(new String[]{"yem_splitopbill", "yem_es_materialinfoid"}) - .finish(); - resDataSet = yemsDeclaredocx.leftJoin(rows) - .on("yem_es_materialinfoid", "yem_es_declare_ecid") - .select(RptUtil.getDataSetFiledAlias(yemsDeclaredocx), RptUtil.getDataSetFiledAlias(rows)) - .finish(); - //定仓通知 - resDataSet = resDataSet.leftJoin(yemContainernumber) - .on("yem_ladingnumber", "yem_ladingnumbers")//提单号 - .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemContainernumber)) - .finish(); - resDataSet = resDataSet.leftJoin(yemContainer) - .on("storagetransid", "storagetransids") - .select(RptUtil.getDataSetFiledAlias(resDataSet), RptUtil.getDataSetFiledAlias(yemContainer)) + resDataSet = yemsDeclaredocx.leftJoin(yemContainer) + .on("declaredocxyem_sourcebillid", "storagetransid") + .select(RptUtil.getDataSetFiledAlias(yemsDeclaredocx), RptUtil.getDataSetFiledAlias(yemContainer)) .finish(); //发运明细 resDataSet = resDataSet.leftJoin(delivernotice) @@ -93,7 +65,6 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { DynamicObject yemClient = filter.getDynamicObject("yem_client"); String yemShipping = filter.getString("yem_shipping"); - StringBuilder sb = new StringBuilder(); sb.append("yem_customsdeclaration1 = 'B'"); if (YEM.isNotEmpty(yemContract)) { @@ -116,6 +87,9 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { * 出口报关单 */ private DataSet yemsDeclaredocx(ReportQueryParam reportQueryParam) { + + + //分票出提单(单证) groupby FilterInfo filter = reportQueryParam.getFilter(); QFilter qFilter = getBaseQFilter(); Date start = filter.getDate("yem_Billofladingday");//提单日期-开始 @@ -127,10 +101,27 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { if (YEM.isNotEmpty(end)) { qFilter.and("yem_tddate", "<=", end); } + qFilter.and("yem_customsdeclaration1",QCP.equals,"B"); + qFilter.and("yem_corebillid",QCP.not_equals,0); List selectfields = new ArrayList<>(); selectfields.add("id yem_es_materialinfoid"); + selectfields.add("billno billno"); selectfields.add("yem_es_declare_ec.yem_splitopbill yem_splitopbill"); DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_declaredocx", String.join(",", selectfields), qFilter.toArray()); + yemShippingdetails = yemShippingdetails + .groupBy(new String[]{"yem_splitopbill", "yem_es_materialinfoid"}) + .finish(); + DataSet rows = yemEsDeclaredocx(reportQueryParam); + + + //获取值 + rows = rows.select(String.join(",", RptUtil.getDataSetFiledAlias(rows)) + + ",case when yem_bringbillno != '' THEN yem_bringbillno else yem_realbringbillno end yem_ladingnumber"); + //出口报关 + yemShippingdetails = yemShippingdetails.leftJoin(rows) + .on("yem_es_materialinfoid", "yem_es_declare_ecid") + .select(RptUtil.getDataSetFiledAlias(yemShippingdetails), RptUtil.getDataSetFiledAlias(rows)) + .finish(); return yemShippingdetails; } @@ -149,6 +140,7 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { if (YEM.isNotEmpty(end)) { qFilter.and("yem_tddate", "<=", end); } + qFilter.and("yem_customsdeclaration1",QCP.equals,"B"); List selectfields = new ArrayList<>(); selectfields.add("yem_customsdeclaration1"); selectfields.add("id yem_es_declare_ecid"); @@ -156,64 +148,55 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { selectfields.add("billno"); selectfields.add("yem_bringbillno yem_bringbillno");//提单号 selectfields.add("yem_realbringbillno yem_realbringbillno");//提单号 - selectfields.add("TO_CHAR(yem_tddate, 'yyyy-MM-dd') yem_lookoutdate");//提单日期 - selectfields.add("TO_CHAR(yem_arrivaldate, 'yyyy-MM-dd') yem_datearrival");//到港日 selectfields.add("TO_CHAR(yem_ddpdate, 'yyyy-MM-dd') yem_customsclearance");//清关提货日 selectfields.add("yem_sourcebillid declaredocxyem_sourcebillid"); DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_declaredocx", String.join(",", selectfields) , qFilter.toArray()).orderBy(new String[]{"yem_bizdate DESC"}); + return yemShippingdetails; } /** * 订舱通知单 */ - private DataSet yemContainernumber(ReportQueryParam reportQueryParam) { - FilterInfo filter = reportQueryParam.getFilter(); + private DataSet yemContainernumber() { QFilter qFilter = getBaseQFilter(); List selectfields = new ArrayList<>(); + + //获取提单号,公司 selectfields.add("id storagetransid"); selectfields.add("yem_noticeno yem_noticeno");//提单号/运单号 - selectfields.add("yem_es_materialinfo.yem_sourcebillno_d yem_sourcebillno_ds");//提单号/运单号 +// selectfields.add("yem_es_materialinfo.yem_sourcebillno_d yem_sourcebillno_ds");//提单号/运单号 selectfields.add("yem_housebillofladnum yem_housebillofladnum");//提单号/运单号 -// selectfields.add("yem_encasement.yem_encasenum yem_containernumber");//集装箱号 selectfields.add("yem_docreview.fbasedataid.id yem_documenterss");//单证审核 selectfields.add("yem_docreview.fbasedataid.name yem_documenter");//单证审核 selectfields.add("yem_cfscompnay.name yem_forwardingcompanies");//货代公司 selectfields.add("yem_sctcompnayname.name yem_shippingcompanies");//船公司 + selectfields.add("TO_CHAR(yem_tddate, 'yyyy-MM-dd') yem_lookoutdate");//提单日期 + selectfields.add("TO_CHAR(yem_arrivaldate, 'yyyy-MM-dd') yem_datearrival");//到港日 selectfields.add("yem_sourcebillid storagetransyemSourcebillid"); DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray()); + yemShippingdetails =yemShippingdetails.distinct(); + //获取集装箱号 List selectfield = new ArrayList<>(); selectfield.add("yem_mainladingno yem_mainladingno");//提单号/运单号 selectfield.add("yem_im_encasement_ci.yem_encasenum yem_containernumbers"); DataSet yemImEncasement = ORM.create().queryDataSet(algoKey, "yem_im_encasement", String.join(",", selectfield), qFilter.toArray()); yemImEncasement = yemImEncasement.groupBy(new String[]{"yem_mainladingno"}).agg(new GroupConcatFunction(),"yem_containernumbers","yem_containernumber").finish(); + //订舱通知单左连接装箱单 yemShippingdetails = yemShippingdetails.leftJoin(yemImEncasement) .on("yem_noticeno","yem_mainladingno") .select(RptUtil.getDataSetFiledAlias(yemShippingdetails),RptUtil.getDataSetFiledAlias(yemImEncasement)) .finish(); + yemShippingdetails = yemShippingdetails.select(String.join(",", RptUtil.getDataSetFiledAlias(yemShippingdetails)) + + ",case when yem_noticeno != '' THEN yem_noticeno else yem_housebillofladnum end yem_ladingnumbers"); return yemShippingdetails; } -// private DataSet yemEsStoragetrans(ReportQueryParam reportQueryParam) { -// QFilter qFilter = getBaseQFilter(); -// List selectfields = new ArrayList<>(); -// selectfields.add("id storagetransid"); -// selectfields.add("yem_docreview.fbasedataid.id yem_documenterss");//单证审核 -// selectfields.add("yem_docreview.fbasedataid.name yem_documenter");//单证审核 -// selectfields.add("yem_cfscompnay.name yem_forwardingcompanies");//货代公司 -// selectfields.add("yem_sctcompnayname.name yem_shippingcompanies");//船公司 -// selectfields.add("yem_sourcebillid storagetransyemSourcebillid"); -// DataSet yemShippingdetails = ORM.create().queryDataSet(algoKey, "yem_es_storagetrans", String.join(",", selectfields), qFilter.toArray()); -// yemShippingdetails = yemShippingdetails.groupBy(new String[]{"storagetransid"}).agg(new GroupConcatFunction(),"yem_containernumbers","yem_containernumber").finish(); -// return yemShippingdetails; -// } /** - * - * @param reportQueryParam * @return */ - private DataSet yemContainer(ReportQueryParam reportQueryParam) { + private DataSet yemContainer() { QFilter qFilter = getBaseQFilter(); List selectfields = new ArrayList<>(); selectfields.add("id storagetransids"); @@ -222,6 +205,11 @@ public class ShipmentsChedulePlugin extends AbstractReportListDataPlugin { yemShippingdetails = yemShippingdetails .groupBy(new String[]{"storagetransids"}).agg(new GroupConcatFunctionByComma(),"yem_sourcebillno_d","yem_shipment") .finish(); + DataSet yemContainernumber = yemContainernumber(); + yemShippingdetails = yemShippingdetails.leftJoin(yemContainernumber) + .on("storagetransids", "storagetransid")//提单号 + .select(RptUtil.getDataSetFiledAlias(yemShippingdetails), RptUtil.getDataSetFiledAlias(yemContainernumber)) + .finish(); return yemShippingdetails; } From 7cb0c8645a0cfc39e35cab8d112ea4f0acfed59e Mon Sep 17 00:00:00 2001 From: ljw Date: Sat, 21 Sep 2024 20:36:46 +0800 Subject: [PATCH 08/24] =?UTF-8?q?fix:=E8=AF=A2=E4=BB=B7=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=97=B6=EF=BC=8C=E4=BB=B7=E6=A0=BC=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0=E4=B8=BA?= =?UTF-8?q?=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../im/inquirylist/op/InquirylistAudit.java | 164 ++++++++++-------- 1 file changed, 94 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java b/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java index a988e941..bb3cc4c6 100644 --- a/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java +++ b/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java @@ -42,42 +42,43 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { public void afterExecuteOperationTransaction(AfterOperationArgs e) { super.afterExecuteOperationTransaction(e); String operationKey = e.getOperationKey(); - if (!"audit".equals(operationKey)){ + if (!"audit".equals(operationKey)) { return; } DynamicObject[] dataEntities = e.getDataEntities(); - for (DynamicObject dataEntitie: dataEntities) { + for (DynamicObject dataEntitie : dataEntities) { Boolean billtype = billtype(dataEntitie); if (!billtype) continue; + productmodel(dataEntitie); DynamicObjectCollection imDetailedinforColl = dataEntitie.getDynamicObjectCollection("yem_im_detailedinfor"); //多功能配置 - for(DynamicObject imDetailedinfor : imDetailedinforColl){ + for (DynamicObject imDetailedinfor : imDetailedinforColl) { DynamicObjectCollection yemMulticonfigColl = imDetailedinfor.getDynamicObjectCollection("yem_multiconfig"); - optional(dataEntitie,yemMulticonfigColl); - replace(dataEntitie,yemMulticonfigColl); - retrofitting(dataEntitie,yemMulticonfigColl); + optional(dataEntitie, yemMulticonfigColl); + replace(dataEntitie, yemMulticonfigColl); + retrofitting(dataEntitie, yemMulticonfigColl); } DynamicObjectCollection yemImDetailedinfor = dataEntitie.getDynamicObjectCollection("yem_im_detailedinfor"); for (DynamicObject dynamicObject : yemImDetailedinfor) { DynamicObject yemProductmodel = dynamicObject.getDynamicObject("yem_productmodel"); BigDecimal yemQingdaounitprice = dynamicObject.getBigDecimal("yem_qingdaounitprice"); - if (yemProductmodel!=null){ + if (yemProductmodel != null) { DynamicObject yemProducts = yemProductmodel.getDynamicObject("yem_products"); - if (yemProducts!=null){ + if (yemProducts != null) { long aLong = yemProducts.getLong("id"); String selectfield = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false); String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_pricelibrary", "yem_basicmodel", false); DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", selectfields , new QFilter[]{new QFilter("yem_bd_products.id", QCP.equals, aLong)}); - if (loadSingle!=null){ + if (loadSingle != null) { DynamicObjectCollection yemBasicmodel = loadSingle.getDynamicObjectCollection("yem_basicmodel"); for (DynamicObject Basic : yemBasicmodel) { DynamicObject yemModel = Basic.getDynamicObject("yem_model"); - if (yemModel!=null){ + if (yemModel != null) { long yemModelLong = yemModel.getLong("id"); long yemProductmodelLong = yemProductmodel.getLong("id"); - if (yemModelLong==yemProductmodelLong){ - Basic.set("yem_pricefob",yemQingdaounitprice); + if (yemModelLong == yemProductmodelLong) { + Basic.set("yem_pricefob", yemQingdaounitprice); } } } @@ -89,10 +90,31 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { } } - public Boolean billtype(DynamicObject dataEntitie){ + private void productmodel(DynamicObject dataEntitie) { + DynamicObjectCollection yemImDetailedinfor = dataEntitie.getDynamicObjectCollection("yem_im_detailedinfor"); + for (DynamicObject dynamicObject : yemImDetailedinfor) { + DynamicObject yemProductmodel = dynamicObject.getDynamicObject("yem_productmodel"); + if (yemProductmodel != null) { + DynamicObject yemProducts = yemProductmodel.getDynamicObject("yem_products"); + if (yemProducts != null) { + long yemProductsLong = yemProducts.getLong("id"); + String selectfield = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false); + String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_pricelibrary", "yem_basicmodel", false); + DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", selectfields + , new QFilter[]{new QFilter("yem_bd_products.id", QCP.equals, yemProductsLong)}); + if (loadSingle != null) { + loadSingle.set("yem_totaldisabledstatus","0"); + + } + } + } + } + } + + public Boolean billtype(DynamicObject dataEntitie) { DynamicObject yemBilltype = dataEntitie.getDynamicObject("yem_billtype"); String number = yemBilltype.getString("number"); - if ("yem_im_inquirylist_ZJ".equals(number)){ + if ("yem_im_inquirylist_ZJ".equals(number)) { return true; } return false; @@ -101,14 +123,15 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { /** * 可加装 + * * @param dataEntitie * @param yemMulticonfigColl */ - public void optional(DynamicObject dataEntitie,DynamicObjectCollection yemMulticonfigColl){ + public void optional(DynamicObject dataEntitie, DynamicObjectCollection yemMulticonfigColl) { //获取配置类型为可选装配置 - Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype") .equals("A"); + Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype").equals("A"); List collect = yemMulticonfigColl.stream().filter(predicate).collect(Collectors.toList()); - for (DynamicObject yemMulticonfig: collect) { + for (DynamicObject yemMulticonfig : collect) { //产品机型 DynamicObject bdProducts = yemMulticonfig.getDynamicObject("yem_productstree"); String bdProductNumber = bdProducts.getString("number"); @@ -130,31 +153,31 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { String remarkss = yemMulticonfig.getString("yem_remarkss"); - //价格库 - DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number", QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); - if (pricelibrary==null){ + DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number" + , QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); + if (pricelibrary == null) { continue; } DynamicObjectCollection optionalColl = pricelibrary.getDynamicObjectCollection("yem_optional"); - Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_o")== configentryid; + Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_o") == configentryid; List collects = optionalColl.stream().filter(filter).collect(Collectors.toList()); - if (collects.size()>0){ + if (collects.size() > 0) { //更新 DynamicObject dynamicObject = collects.get(0); - dynamicObject.set("yem_salesprice_o",marketprice); - dynamicObject.set("yem_salesmarkup_o",marketraiseprice); + dynamicObject.set("yem_salesprice_o", marketprice); + dynamicObject.set("yem_salesmarkup_o", marketraiseprice); SaveServiceHelper.update(pricelibrary); - }else { + } else { DynamicObject dynamicObject = new DynamicObject(optionalColl.getDynamicObjectType()); - dynamicObject.set("yem_profilename_o",configurname); - dynamicObject.set("yem_english",configurtypeen); - dynamicObject.set("yem_specification_o",specification_o); - dynamicObject.set("yem_salesprice_o",marketprice); - dynamicObject.set("yem_salesmarkup_o",marketraiseprice); - dynamicObject.set("yem_parameter_o",arguments); - dynamicObject.set("yem_remark_o",remarkss); - dynamicObject.set("yem_entryid_o",configentryid); + dynamicObject.set("yem_profilename_o", configurname); + dynamicObject.set("yem_english", configurtypeen); + dynamicObject.set("yem_specification_o", specification_o); + dynamicObject.set("yem_salesprice_o", marketprice); + dynamicObject.set("yem_salesmarkup_o", marketraiseprice); + dynamicObject.set("yem_parameter_o", arguments); + dynamicObject.set("yem_remark_o", remarkss); + dynamicObject.set("yem_entryid_o", configentryid); optionalColl.add(dynamicObject); SaveServiceHelper.save(new DynamicObject[]{pricelibrary}); } @@ -162,17 +185,17 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { } - /** * 可替换 + * * @param dataEntitie * @param yemMulticonfigColl */ - public void replace(DynamicObject dataEntitie,DynamicObjectCollection yemMulticonfigColl){ + public void replace(DynamicObject dataEntitie, DynamicObjectCollection yemMulticonfigColl) { //获取配置类型为可选装配置 - Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype") .equals("B"); + Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype").equals("B"); List collect = yemMulticonfigColl.stream().filter(predicate).collect(Collectors.toList()); - for (DynamicObject yemMulticonfig: collect) { + for (DynamicObject yemMulticonfig : collect) { //产品机型 DynamicObject bdProducts = yemMulticonfig.getDynamicObject("yem_productstree"); String bdProductNumber = bdProducts.getString("number"); @@ -194,30 +217,30 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { String remarkss = yemMulticonfig.getString("yem_remarkss"); - //价格库 - DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number", QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); - if (pricelibrary==null){ + DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number" + , QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); + if (pricelibrary == null) { continue; } DynamicObjectCollection optionalColl = pricelibrary.getDynamicObjectCollection("yem_replaceable"); - Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_re")== configentryid; + Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_re") == configentryid; List collects = optionalColl.stream().filter(filter).collect(Collectors.toList()); - if (collects.size()>0){ + if (collects.size() > 0) { //更新 DynamicObject dynamicObject = collects.get(0); - dynamicObject.set("yem_salesprice_re",marketprice); - dynamicObject.set("yem_salesmarkup_re",marketraiseprice); + dynamicObject.set("yem_salesprice_re", marketprice); + dynamicObject.set("yem_salesmarkup_re", marketraiseprice); SaveServiceHelper.update(pricelibrary); - }else { + } else { DynamicObject dynamicObject = new DynamicObject(optionalColl.getDynamicObjectType()); - dynamicObject.set("yem_profilename_re",configurname); - dynamicObject.set("yem_englishname",configurtypeen); - dynamicObject.set("yem_specification_re",specification_o); - dynamicObject.set("yem_salesprice_re",marketprice); - dynamicObject.set("yem_salesmarkup_re",marketraiseprice); - dynamicObject.set("yem_remark_re",remarkss); - dynamicObject.set("yem_entryid_re",configentryid); + dynamicObject.set("yem_profilename_re", configurname); + dynamicObject.set("yem_englishname", configurtypeen); + dynamicObject.set("yem_specification_re", specification_o); + dynamicObject.set("yem_salesprice_re", marketprice); + dynamicObject.set("yem_salesmarkup_re", marketraiseprice); + dynamicObject.set("yem_remark_re", remarkss); + dynamicObject.set("yem_entryid_re", configentryid); optionalColl.add(dynamicObject); SaveServiceHelper.save(new DynamicObject[]{pricelibrary}); } @@ -226,14 +249,15 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { /** * 可加装 + * * @param dataEntitie * @param yemMulticonfigColl */ - public void retrofitting(DynamicObject dataEntitie,DynamicObjectCollection yemMulticonfigColl){ + public void retrofitting(DynamicObject dataEntitie, DynamicObjectCollection yemMulticonfigColl) { //获取配置类型为可选装配置 - Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype") .equals("C"); + Predicate predicate = dynamicObject -> dynamicObject.getString("yem_configurtype").equals("C"); List collect = yemMulticonfigColl.stream().filter(predicate).collect(Collectors.toList()); - for (DynamicObject yemMulticonfig: collect) { + for (DynamicObject yemMulticonfig : collect) { //产品机型 DynamicObject bdProducts = yemMulticonfig.getDynamicObject("yem_productstree"); String bdProductNumber = bdProducts.getString("number"); @@ -255,30 +279,30 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { String remarkss = yemMulticonfig.getString("yem_remarkss"); - //价格库 - DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number", QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); - if (pricelibrary==null){ + DynamicObject pricelibrary = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", new QFilter[]{new QFilter("yem_bd_products.number" + , QCP.equals, bdProductNumber), new QFilter("billstatus", "=", "C")}); + if (pricelibrary == null) { continue; } DynamicObjectCollection optionalColl = pricelibrary.getDynamicObjectCollection("yem_retrofitting"); - Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_rt")== configentryid; + Predicate filter = dynamicObject -> dynamicObject.getLong("yem_entryid_rt") == configentryid; List collects = optionalColl.stream().filter(filter).collect(Collectors.toList()); - if (collects.size()>0){ + if (collects.size() > 0) { //更新 DynamicObject dynamicObject = collects.get(0); - dynamicObject.set("yem_salesprice_rt",marketprice); - dynamicObject.set("yem_salesmarkup_rt",marketraiseprice); + dynamicObject.set("yem_salesprice_rt", marketprice); + dynamicObject.set("yem_salesmarkup_rt", marketraiseprice); SaveServiceHelper.update(pricelibrary); - }else { + } else { DynamicObject dynamicObject = new DynamicObject(optionalColl.getDynamicObjectType()); - dynamicObject.set("yem_profilename_rt",configurname); - dynamicObject.set("yem_englishnames",configurtypeen); - dynamicObject.set("yem_specification_rt",specification_o); - dynamicObject.set("yem_salesprice_rt",marketprice); - dynamicObject.set("yem_salesmarkup_rt",marketraiseprice); - dynamicObject.set("yem_remark_rt",remarkss); - dynamicObject.set("yem_entryid_rt",configentryid); + dynamicObject.set("yem_profilename_rt", configurname); + dynamicObject.set("yem_englishnames", configurtypeen); + dynamicObject.set("yem_specification_rt", specification_o); + dynamicObject.set("yem_salesprice_rt", marketprice); + dynamicObject.set("yem_salesmarkup_rt", marketraiseprice); + dynamicObject.set("yem_remark_rt", remarkss); + dynamicObject.set("yem_entryid_rt", configentryid); optionalColl.add(dynamicObject); SaveServiceHelper.save(new DynamicObject[]{pricelibrary}); } From 211fffb305b231d1ed12d94a5ef1547c6d39a44e Mon Sep 17 00:00:00 2001 From: ljw Date: Sat, 21 Sep 2024 22:08:24 +0800 Subject: [PATCH 09/24] =?UTF-8?q?fix:=E6=94=B6=E6=AC=BE=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java b/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java index ab105bda..5905f99b 100644 --- a/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java +++ b/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java @@ -323,7 +323,7 @@ public class GatheringClaimFormPlugin extends AbstractFormPlugin implements RowC } if ("F".equals(moneynature)) { BigDecimal percentagePeriod = getPercentagePeriod(shipPreRapRate, procPreRapRate); - if (amountClaimed.compareTo(PaymentControlUtil.getAdvancePayment(allBalancePayment, percentagePeriod)) < 0) { + if (amountClaimed.compareTo(allBalancePayment.multiply(percentagePeriod)) < 0) { Long id = (Long) single.getPkValue(); ids.add(id); } From a12730aa7486c3df291972013272de667c548bf4 Mon Sep 17 00:00:00 2001 From: "zzs01@yunemao.com" Date: Mon, 23 Sep 2024 10:06:33 +0800 Subject: [PATCH 10/24] =?UTF-8?q?fix:=E5=8F=91=E8=B4=A7=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=B9=A6=E6=AC=BE=E9=A1=B9=E5=88=B0=E4=BD=8D=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../es/contactbook/op/ContactBookSaveOp.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yem/wm/es/contactbook/op/ContactBookSaveOp.java b/src/main/java/com/yem/wm/es/contactbook/op/ContactBookSaveOp.java index 34bbc0d4..7f22de9e 100644 --- a/src/main/java/com/yem/wm/es/contactbook/op/ContactBookSaveOp.java +++ b/src/main/java/com/yem/wm/es/contactbook/op/ContactBookSaveOp.java @@ -182,8 +182,8 @@ public class ContactBookSaveOp extends AbstractOperationServicePlugIn // boolean isProcClaimFinish = false;//下单预收金额是否认领完成 // boolean isShipClaimFinish = false;//本次发运 发运预收认领是否完成 - boolean isPreClaimFinish = false; - boolean isFinalClaimFinish = false;//尾款是否认领完成 +// boolean isPreClaimFinish = false; +// boolean isFinalClaimFinish = false;//尾款是否认领完成 String salesorder_no = entry.getKey(); String ship_no = entry.getValue(); @@ -229,8 +229,12 @@ public class ContactBookSaveOp extends AbstractOperationServicePlugIn BigDecimal mergeAmtClaimed = shipClaimAmt.add(procClaimAnt); BigDecimal mergeAmtIOU = advancePayment.add(thisShipIOUAmt); - if (mergeAmtIOU.compareTo(BigDecimal.ZERO) > 0 && mergeAmtClaimed.compareTo(mergeAmtIOU) >= 0) { - isPreClaimFinish = true; + if (mergeAmtIOU.compareTo(BigDecimal.ZERO) > 0) { + if (mergeAmtClaimed.compareTo(mergeAmtIOU) >= 0) { + pre.add(true); + } else { + pre.add(false); + } } BigDecimal amount = shipDetail.getBigDecimal("yem_offeramount");//发运 价格条款金额 @@ -239,14 +243,18 @@ public class ContactBookSaveOp extends AbstractOperationServicePlugIn logger.info("尾款已认领金额:{}, 尾款应收金额:{}", shipClaimAmt_periodrefund, periodrefundamt); debugMsg.append(String.format("尾款已认领金额:%s, 尾款应收金额:%s", shipClaimAmt_periodrefund, periodrefundamt)).append("\n"); // 尾款认领金额 >= 尾款 应收金额 - if (periodrefundamt.compareTo(BigDecimal.ZERO) > 0 && shipClaimAmt_periodrefund.compareTo(periodrefundamt) >= 0) { - isFinalClaimFinish = true; + if (periodrefundamt.compareTo(BigDecimal.ZERO) > 0) { + if (shipClaimAmt_periodrefund.compareTo(periodrefundamt) >= 0) { + last.add(true); + } else { + last.add(false); + } } // proc.add(isProcClaimFinish); // ship.add(isShipClaimFinish); - pre.add(isPreClaimFinish); - last.add(isFinalClaimFinish); +// pre.add(isPreClaimFinish); +// last.add(isFinalClaimFinish); DynamicObject[] tradeapps = BusinessDataServiceHelper.load("yem_im_tradeapp", "id, billno", new QFilter[]{new QFilter("yem_im_tradeapp_em.yem_shippingnumber", QCP.equals, shipDetail.getString("billno")), new QFilter("billstatus", QCP.equals, "C")}); iou = iou + tradeapps.length; From ec654a82351306e1f7623870400c78acabb7bee7 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 10:11:26 +0800 Subject: [PATCH 11/24] =?UTF-8?q?fix:=E6=94=B6=E6=AC=BE=E5=8D=95=E8=B4=A2?= =?UTF-8?q?=E5=8A=A1=E7=A1=AE=E8=AE=A4=E5=8A=9F=E8=83=BD=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E8=87=B3=E8=AE=A4=E9=A2=86=E7=A1=AE=E8=AE=A4=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/fm/gathering/from/GatheringEcit.java | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java index 49e6607e..487c3737 100644 --- a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java +++ b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java @@ -2,6 +2,7 @@ package com.yem.wm.fm.gathering.from; import com.alibaba.druid.util.StringUtils; import com.yem.or.utils.OrderApiUtils; +import com.yem.wm.es.salesorder.utils.SalesOrderUtils; import com.yem.wm.im.debcrednotenew.utils.DebCredUtils; import com.yem.wm.utils.YEM; import kd.bos.bill.AbstractBillPlugIn; @@ -979,6 +980,111 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL orderplat(key, map.get(key)); } } + // 收款单 收款明细 + DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_receiptdetail"); + if (!collection.isEmpty()) { + for (DynamicObject dynamicObject : collection) { + // 认领明细(子单据体) + DynamicObjectCollection subCollection = dynamicObject.getDynamicObjectCollection("yem_claimdetail"); + if (subCollection.isEmpty()) { + continue; + } + + // 合同号 - 认领金额, 认领金额本位币 + Map> longMapLinkedHashMap = new LinkedHashMap<>(); + + // 获取子单据体中 合同号对应的认领金额总和 + for (DynamicObject object : subCollection) { + // 合同号 + long contractno = object.getLong("yem_salcontractno.id"); + if (longMapLinkedHashMap.containsKey(contractno)) { + // 认领金额 + BigDecimal claimamt = longMapLinkedHashMap.get(contractno).get("claimamt"); + claimamt = claimamt.add(object.getBigDecimal("yem_claimamt")); + // 认领金额本位币 + BigDecimal claimamtbase = longMapLinkedHashMap.get(contractno).get("claimamtbase"); + claimamtbase = claimamtbase.add(object.getBigDecimal("yem_claimamtbase")); + Map vVewMap = new HashMap<>(); + // 认领金额 + vVewMap.put("claimamt", claimamt); + // 认领金额本位币 + vVewMap.put("claimamtbase", claimamtbase); + // 合同金额 + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } else { + Map vVewMap = new HashMap<>(); + vVewMap.put("claimamt", object.getBigDecimal("yem_claimamt")); + vVewMap.put("claimamtbase", object.getBigDecimal("yem_claimamtbase")); + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } + } + longMapLinkedHashMap.forEach((k, v) -> + { + BigDecimal salcontractamt = BigDecimal.ZERO; + // 产品分类 + long productsId = 0; + for (DynamicObject object : subCollection) { + if (object.getLong("yem_salcontractno.id") == k) { + salcontractamt = object.getBigDecimal("yem_salcontractamt"); + productsId = object.getLong("yem_productclassify.id"); + } + } + + // 查询配件客商额度申请单 + // 财务组织 + long orgId =(long) this.getModel().getValue("org.id"); + // 客户名称 + long customerId =(long) this.getModel().getValue("yem_comegoman.id"); + // 结算币别 + long currency = (long) this.getModel().getValue("yem_currency.id"); + // 业务组织 = 财务组织 + QFilter qFilters = new QFilter("org.id", QCP.equals, orgId); + // 客户名称 = 客户名称 + qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId)); + // 产品分类 = 产品分类 + qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); + // 单据状态 = 已审核 + qFilters.and(new QFilter("billstatus", QCP.equals, "C")); + // 合同上结算币别 = 额度申请上 额度币别 + qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency)); + // 查询配件客商额度申请单 + DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); + if (partsmerchant != null) { + // 配件客商额度申请单明细 + DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); + for (DynamicObject object : partsmerchantCollection) { + if (object.getLong("yem_cn.id") == k) { + + BigDecimal writenamt = object.getBigDecimal("yem_claimamt"); + BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); + // 合同金额 + object.set("yem_salcontractamt", v.get("salcontractamt")); + // 认领金额 + object.set("yem_claimamt", writenamt.add(v.get("claimamt"))); + // 认领金额本位币 + object.set("yem_claimamtbase", locwrittenamt.add(v.get("claimamtbase"))); + + // 合同金额 = 认领金额 + if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { + object.set("yem_writtenamt", object.get("yem_sum")); + object.set("yem_locwrittenamt", object.get("yem_localsum")); + object.set("yem_pennsylvania", new Date()); + } else { + object.set("yem_writtenamt", null); + object.set("yem_locwrittenamt", null); + object.set("yem_pennsylvania", null); + } + } + } + // 将数据保存到分录 + SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); + SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); + } + }); + } + } } view.invokeOperation("save"); view.invokeOperation("refresh"); From 49ac119c2d2990868fbb139d15a603c5507f001a Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 10:49:43 +0800 Subject: [PATCH 12/24] =?UTF-8?q?fix:=E8=A1=A3=E6=80=BB=E7=AD=BE=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salescontrac/op/SalesContracAuditOp.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/com/yem/wm/es/salescontrac/op/SalesContracAuditOp.java diff --git a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracAuditOp.java b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracAuditOp.java new file mode 100644 index 00000000..d2002eae --- /dev/null +++ b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracAuditOp.java @@ -0,0 +1,36 @@ +package com.yem.wm.es.salescontrac.op; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +/** + * @author ljw + * @date 2024/9/23 10:46 + * @description SalesContracAuditOp + */ +public class SalesContracAuditOp extends AbstractOperationServicePlugIn { + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) + { + super.afterExecuteOperationTransaction(e); + DynamicObject[] entities = e.getDataEntities(); + for (DynamicObject entity : entities) { + DynamicObject load = BusinessDataServiceHelper.loadSingle(entity.getPkValue(), entity.getDynamicObjectType().getName()); + String billstatus = load.getString("billstatus"); + if ("C".equals(billstatus)) { + // 衣晓明 + DynamicObject user = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{new QFilter("number", QCP.equals, "10437")}); + if (user != null) { + String signature = user.getString("yem_signature"); + load.set("yem_managersign", signature); + } + SaveServiceHelper.save(new DynamicObject[]{load}); + } + } + } +} From 5296c92cdccba0d7e204cbdcb1c24231a7552636 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 12:06:10 +0800 Subject: [PATCH 13/24] =?UTF-8?q?fix:=E6=A0=B9=E6=8D=AE=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=AF=B9=E8=B1=A1=E5=88=9B=E5=BB=BAJSon?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yem/ia/intebilllogon/Utils/ObjectToJsonUtils.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yem/ia/intebilllogon/Utils/ObjectToJsonUtils.java b/src/main/java/com/yem/ia/intebilllogon/Utils/ObjectToJsonUtils.java index 59a5f5b6..437ec0b3 100644 --- a/src/main/java/com/yem/ia/intebilllogon/Utils/ObjectToJsonUtils.java +++ b/src/main/java/com/yem/ia/intebilllogon/Utils/ObjectToJsonUtils.java @@ -119,7 +119,11 @@ public class ObjectToJsonUtils { if (creator == null || creator.length() == 0) { Object.put("creator", dataEntity.getString("yem_creator")); } else { - Object.put("creator", creator); + if ("yem_es_xsalesorder".equals(entityName)||"yem_es_salesorder".equals(entityName)){ + Object.put("creator", dataEntity.getString("yem_operator.useropenid")); + }else { + Object.put("creator", creator); + } } JSONObject widgetValueObject = new JSONObject();//单据头对象 JSONObject json = new JSONObject();// From 5259803a0d80fd454d754ca5505d7368c3a5463a Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 12:06:20 +0800 Subject: [PATCH 14/24] =?UTF-8?q?fix:=E5=90=88=E5=90=8C=E7=AD=BE=E7=AB=A0?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=9C=8D=E5=8A=A1=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java index a2d48970..1c99b88c 100644 --- a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java +++ b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java @@ -146,7 +146,7 @@ public class SalesContracSignatureOp extends AbstractOperationServicePlugIn { public JSONObject GetintebilllogonJson(Object pkid, DynamicObject dynamicObject) { JSONObject Object = new JSONObject(); QFilter qFilter = new QFilter("yem_isdisable", QCP.equals, false); - qFilter.and(new QFilter("billno", QCP.equals, "WXHT-YZJ")); + qFilter.and(new QFilter("billno", QCP.equals, "KJHT-GZSP")); DynamicObject yem_ia_intebilllogon = BusinessDataServiceHelper.loadSingle("yem_ia_intebilllogon", "id", qFilter.toArray()); if (yem_ia_intebilllogon != null) { long intebilllogonID = yem_ia_intebilllogon.getLong("id"); From b866ded5e91b39a01659e718f3370aa2cbe7fb3e Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 12:07:43 +0800 Subject: [PATCH 15/24] =?UTF-8?q?fix:=E5=90=88=E5=90=8C=E7=AD=BE=E7=AB=A0?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=9C=8D=E5=8A=A1=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java index 1c99b88c..79633bf8 100644 --- a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java +++ b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracSignatureOp.java @@ -157,7 +157,7 @@ public class SalesContracSignatureOp extends AbstractOperationServicePlugIn { } } else { this.operationResult.addErrorInfo(new ValidationErrorInfo("", pkid, - 0, 0, "err", "合同签章申请", "未读取启用的《智能审批单据注册》,请修改后重试!", ErrorLevel.Error)); + 0, 0, "err", "框架合同签章申请", "未读取启用的《智能审批单据注册》,请修改后重试!", ErrorLevel.Error)); } return Object; } From 21c883fadf948855b67c419a55e1fe18f9c67e94 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 15:50:04 +0800 Subject: [PATCH 16/24] =?UTF-8?q?fix:=E6=94=B6=E6=AC=BE=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/fm/gathering/from/GatheringEcit.java | 221 +++++++++--------- 1 file changed, 116 insertions(+), 105 deletions(-) diff --git a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java index 487c3737..58bc4d5a 100644 --- a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java +++ b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java @@ -980,116 +980,127 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL orderplat(key, map.get(key)); } } - // 收款单 收款明细 - DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_receiptdetail"); - if (!collection.isEmpty()) { - for (DynamicObject dynamicObject : collection) { - // 认领明细(子单据体) - DynamicObjectCollection subCollection = dynamicObject.getDynamicObjectCollection("yem_claimdetail"); - if (subCollection.isEmpty()) { - continue; - } - - // 合同号 - 认领金额, 认领金额本位币 - Map> longMapLinkedHashMap = new LinkedHashMap<>(); - - // 获取子单据体中 合同号对应的认领金额总和 - for (DynamicObject object : subCollection) { - // 合同号 - long contractno = object.getLong("yem_salcontractno.id"); - if (longMapLinkedHashMap.containsKey(contractno)) { - // 认领金额 - BigDecimal claimamt = longMapLinkedHashMap.get(contractno).get("claimamt"); - claimamt = claimamt.add(object.getBigDecimal("yem_claimamt")); - // 认领金额本位币 - BigDecimal claimamtbase = longMapLinkedHashMap.get(contractno).get("claimamtbase"); - claimamtbase = claimamtbase.add(object.getBigDecimal("yem_claimamtbase")); - Map vVewMap = new HashMap<>(); - // 认领金额 - vVewMap.put("claimamt", claimamt); - // 认领金额本位币 - vVewMap.put("claimamtbase", claimamtbase); - // 合同金额 - vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); - longMapLinkedHashMap.put(contractno, vVewMap); - } else { - Map vVewMap = new HashMap<>(); - vVewMap.put("claimamt", object.getBigDecimal("yem_claimamt")); - vVewMap.put("claimamtbase", object.getBigDecimal("yem_claimamtbase")); - vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); - longMapLinkedHashMap.put(contractno, vVewMap); - } - } - longMapLinkedHashMap.forEach((k, v) -> - { - BigDecimal salcontractamt = BigDecimal.ZERO; - // 产品分类 - long productsId = 0; - for (DynamicObject object : subCollection) { - if (object.getLong("yem_salcontractno.id") == k) { - salcontractamt = object.getBigDecimal("yem_salcontractamt"); - productsId = object.getLong("yem_productclassify.id"); - } - } - - // 查询配件客商额度申请单 - // 财务组织 - long orgId =(long) this.getModel().getValue("org.id"); - // 客户名称 - long customerId =(long) this.getModel().getValue("yem_comegoman.id"); - // 结算币别 - long currency = (long) this.getModel().getValue("yem_currency.id"); - // 业务组织 = 财务组织 - QFilter qFilters = new QFilter("org.id", QCP.equals, orgId); - // 客户名称 = 客户名称 - qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId)); - // 产品分类 = 产品分类 - qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); - // 单据状态 = 已审核 - qFilters.and(new QFilter("billstatus", QCP.equals, "C")); - // 合同上结算币别 = 额度申请上 额度币别 - qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency)); - // 查询配件客商额度申请单 - DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); - if (partsmerchant != null) { - // 配件客商额度申请单明细 - DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); - for (DynamicObject object : partsmerchantCollection) { - if (object.getLong("yem_cn.id") == k) { - - BigDecimal writenamt = object.getBigDecimal("yem_claimamt"); - BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); - // 合同金额 - object.set("yem_salcontractamt", v.get("salcontractamt")); - // 认领金额 - object.set("yem_claimamt", writenamt.add(v.get("claimamt"))); - // 认领金额本位币 - object.set("yem_claimamtbase", locwrittenamt.add(v.get("claimamtbase"))); - - // 合同金额 = 认领金额 - if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { - object.set("yem_writtenamt", object.get("yem_sum")); - object.set("yem_locwrittenamt", object.get("yem_localsum")); - object.set("yem_pennsylvania", new Date()); - } else { - object.set("yem_writtenamt", null); - object.set("yem_locwrittenamt", null); - object.set("yem_pennsylvania", null); - } - } - } - // 将数据保存到分录 - SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); - SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); - } - }); - } - } + undate_receipt(); } view.invokeOperation("save"); view.invokeOperation("refresh"); } + private void undate_receipt() { + // 收款单 收款明细 + DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_receiptdetail"); + + if (!collection.isEmpty()) { + for (DynamicObject dynamicObject : collection) { + // 认领明细(子单据体) + DynamicObjectCollection subCollection = dynamicObject.getDynamicObjectCollection("yem_claimdetail"); + if (subCollection.isEmpty()) { + continue; + } + + // 合同号 - 认领金额, 认领金额本位币 + Map> longMapLinkedHashMap = new LinkedHashMap<>(); + + // 获取子单据体中 合同号对应的认领金额总和 + for (DynamicObject object : subCollection) { + // 合同号 + long contractno = object.getLong("yem_salcontractno.id"); + if (longMapLinkedHashMap.containsKey(contractno)) { + // 认领金额 + BigDecimal claimamt = longMapLinkedHashMap.get(contractno).get("claimamt"); + claimamt = claimamt.add(object.getBigDecimal("yem_claimamt")); + // 认领金额本位币 + BigDecimal claimamtbase = longMapLinkedHashMap.get(contractno).get("claimamtbase"); + claimamtbase = claimamtbase.add(object.getBigDecimal("yem_claimamtbase")); + Map vVewMap = new HashMap<>(); + // 认领金额 + vVewMap.put("claimamt", claimamt); + // 认领金额本位币 + vVewMap.put("claimamtbase", claimamtbase); + // 合同金额 + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } else { + Map vVewMap = new HashMap<>(); + vVewMap.put("claimamt", object.getBigDecimal("yem_claimamt")); + vVewMap.put("claimamtbase", object.getBigDecimal("yem_claimamtbase")); + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } + } + longMapLinkedHashMap.forEach((k, v) -> + { + BigDecimal salcontractamt = BigDecimal.ZERO; + // 产品分类 + long productsId = 0; + for (DynamicObject object : subCollection) { + if (object.getLong("yem_salcontractno.id") == k) { + salcontractamt = object.getBigDecimal("yem_salcontractamt"); + productsId = object.getLong("yem_productclassify.id"); + } + } + + // 查询配件客商额度申请单 + // 财务组织 + DynamicObject orgId =(DynamicObject) this.getModel().getValue("org"); + // 客户名称 + DynamicObject customerId =(DynamicObject) this.getModel().getValue("yem_comegoman"); + // 结算币别 + DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency"); + // 单据状态 = 已审核 + QFilter qFilters = new QFilter("billstatus", QCP.equals, "C"); + // 业务组织 = 财务组织 + if (orgId !=null ){ + qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id"))); + } + // 客户名称 = 客户名称 + if (customerId !=null ){ + qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id"))); + } + // 产品分类 = 产品分类 + if (currency !=null ){ + qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id"))); + } + // 合同上结算币别 = 额度申请上 额度币别 + qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); + // 查询配件客商额度申请单 + DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); + if (partsmerchant != null) { + // 配件客商额度申请单明细 + DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); + for (DynamicObject object : partsmerchantCollection) { + if (object.getLong("yem_cn.id") == k) { + + BigDecimal writenamt = object.getBigDecimal("yem_claimamt"); + BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); + // 合同金额 + object.set("yem_salcontractamt", v.get("salcontractamt")); + // 认领金额 + object.set("yem_claimamt", writenamt.add(v.get("claimamt"))); + // 认领金额本位币 + object.set("yem_claimamtbase", locwrittenamt.add(v.get("claimamtbase"))); + + // 合同金额 = 认领金额 + if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { + object.set("yem_writtenamt", object.get("yem_sum")); + object.set("yem_locwrittenamt", object.get("yem_localsum")); + object.set("yem_pennsylvania", new Date()); + } else { + object.set("yem_writtenamt", null); + object.set("yem_locwrittenamt", null); + object.set("yem_pennsylvania", null); + } + } + } + // 将数据保存到分录 + SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); + SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); + } + }); + } + } + } + /** * 生成贷记单 * From c3b9adf1e16cf5b5aa03f538c175968f6d13c92b Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 15:50:04 +0800 Subject: [PATCH 17/24] =?UTF-8?q?fix:=E6=94=B6=E6=AC=BE=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/fm/gathering/from/GatheringEcit.java | 207 ++++++++++-------- 1 file changed, 111 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java index 58bc4d5a..6f0803aa 100644 --- a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java +++ b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java @@ -698,7 +698,8 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL boolean dataChanged = model.getDataChanged(); String pageId = dataEntity.getDynamicObjectType().getName(); - String[] noCheck = new String[]{"save", "delete", "refresh", "close", "modify", "new", "newentrya1", "copyentryrowa", "insertentrya", "deleteentrya1", "batchfillentrya", "newentryb", "insertentryb", "copyentryrowb", "deleteentryb", "batchfillentryb"}; + String[] noCheck = new String[]{"save", "delete", "refresh", "close", "modify", "new", "newentrya1", "copyentryrowa" + , "insertentrya", "deleteentrya1", "batchfillentrya", "newentryb", "insertentryb", "copyentryrowb", "deleteentryb", "batchfillentryb"}; if (dataChanged && !Arrays.asList(noCheck).contains(operateKey) && ("yem_gathering".equals(pageId) || "yem_gathering_cw".equals(pageId))) { // throw new KDBizException("检测到单据内容更新,请保存后再进行操作!"); @@ -998,108 +999,122 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL continue; } - // 合同号 - 认领金额, 认领金额本位币 - Map> longMapLinkedHashMap = new LinkedHashMap<>(); - - // 获取子单据体中 合同号对应的认领金额总和 - for (DynamicObject object : subCollection) { - // 合同号 - long contractno = object.getLong("yem_salcontractno.id"); - if (longMapLinkedHashMap.containsKey(contractno)) { - // 认领金额 - BigDecimal claimamt = longMapLinkedHashMap.get(contractno).get("claimamt"); - claimamt = claimamt.add(object.getBigDecimal("yem_claimamt")); - // 认领金额本位币 - BigDecimal claimamtbase = longMapLinkedHashMap.get(contractno).get("claimamtbase"); - claimamtbase = claimamtbase.add(object.getBigDecimal("yem_claimamtbase")); - Map vVewMap = new HashMap<>(); - // 认领金额 - vVewMap.put("claimamt", claimamt); - // 认领金额本位币 - vVewMap.put("claimamtbase", claimamtbase); - // 合同金额 - vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); - longMapLinkedHashMap.put(contractno, vVewMap); - } else { - Map vVewMap = new HashMap<>(); - vVewMap.put("claimamt", object.getBigDecimal("yem_claimamt")); - vVewMap.put("claimamtbase", object.getBigDecimal("yem_claimamtbase")); - vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); - longMapLinkedHashMap.put(contractno, vVewMap); - } - } - longMapLinkedHashMap.forEach((k, v) -> - { - BigDecimal salcontractamt = BigDecimal.ZERO; - // 产品分类 - long productsId = 0; + // 合同号 - 认领金额, 认领金额本位币 + Map> longMapLinkedHashMap = new LinkedHashMap<>(); + BigDecimal yem_claimamt_a = BigDecimal.ZERO; + BigDecimal yem_claimamtbase_a = BigDecimal.ZERO; + // 获取子单据体中 合同号对应的认领金额总和 for (DynamicObject object : subCollection) { - if (object.getLong("yem_salcontractno.id") == k) { - salcontractamt = object.getBigDecimal("yem_salcontractamt"); - productsId = object.getLong("yem_productclassify.id"); - } - } - - // 查询配件客商额度申请单 - // 财务组织 - DynamicObject orgId =(DynamicObject) this.getModel().getValue("org"); - // 客户名称 - DynamicObject customerId =(DynamicObject) this.getModel().getValue("yem_comegoman"); - // 结算币别 - DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency"); - // 单据状态 = 已审核 - QFilter qFilters = new QFilter("billstatus", QCP.equals, "C"); - // 业务组织 = 财务组织 - if (orgId !=null ){ - qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id"))); - } - // 客户名称 = 客户名称 - if (customerId !=null ){ - qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id"))); - } - // 产品分类 = 产品分类 - if (currency !=null ){ - qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id"))); - } - // 合同上结算币别 = 额度申请上 额度币别 - qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); - // 查询配件客商额度申请单 - DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); - if (partsmerchant != null) { - // 配件客商额度申请单明细 - DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); - for (DynamicObject object : partsmerchantCollection) { - if (object.getLong("yem_cn.id") == k) { - - BigDecimal writenamt = object.getBigDecimal("yem_claimamt"); - BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); - // 合同金额 - object.set("yem_salcontractamt", v.get("salcontractamt")); - // 认领金额 - object.set("yem_claimamt", writenamt.add(v.get("claimamt"))); - // 认领金额本位币 - object.set("yem_claimamtbase", locwrittenamt.add(v.get("claimamtbase"))); - - // 合同金额 = 认领金额 - if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { - object.set("yem_writtenamt", object.get("yem_sum")); - object.set("yem_locwrittenamt", object.get("yem_localsum")); - object.set("yem_pennsylvania", new Date()); - } else { - object.set("yem_writtenamt", null); - object.set("yem_locwrittenamt", null); - object.set("yem_pennsylvania", null); + DynamicObject[] yemGathering = BusinessDataServiceHelper.load("yem_gathering" + , "yem_receiptdetail,yem_receiptdetail.yem_claimdetail,yem_claimdetail.yem_salcontractno,yem_receiptdetail.yem_claimamt_a,yem_receiptdetail.yem_claimamtbase_a" + , new QFilter[]{new QFilter("yem_receiptdetail.yem_claimdetail.yem_salcontractno.billno", QCP.equals, object.getString("yem_salcontractno.billno"))}); + if (yemGathering.length > 0) { + for (DynamicObject dynamicObject1 : yemGathering) { + DynamicObjectCollection dynamicObjectCollection = dynamicObject1.getDynamicObjectCollection("yem_receiptdetail"); + for (DynamicObject dynamicObject2 : dynamicObjectCollection) { + yem_claimamt_a = yem_claimamt_a.add(dynamicObject2.getBigDecimal("yem_claimamt_a")); + yem_claimamtbase_a = yem_claimamtbase_a.add(dynamicObject2.getBigDecimal("yem_claimamtbase_a")); } } } - // 将数据保存到分录 - SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); - SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); + // 合同号 + long contractno = object.getLong("yem_salcontractno.id"); + if (longMapLinkedHashMap.containsKey(contractno)) { + // 认领金额 + BigDecimal claimamt = longMapLinkedHashMap.get(contractno).get("claimamt"); + claimamt = claimamt.add(object.getBigDecimal("yem_claimamt")); + // 认领金额本位币 + BigDecimal claimamtbase = longMapLinkedHashMap.get(contractno).get("claimamtbase"); + claimamtbase = claimamtbase.add(object.getBigDecimal("yem_claimamtbase")); + Map vVewMap = new HashMap<>(); + // 认领金额 + vVewMap.put("claimamt", claimamt); + // 认领金额本位币 + vVewMap.put("claimamtbase", claimamtbase); + // 合同金额 + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } else { + Map vVewMap = new HashMap<>(); + vVewMap.put("claimamt", object.getBigDecimal("yem_claimamt")); + vVewMap.put("claimamtbase", object.getBigDecimal("yem_claimamtbase")); + vVewMap.put("salcontractamt", object.getBigDecimal("yem_salcontractamt")); + longMapLinkedHashMap.put(contractno, vVewMap); + } } - }); + BigDecimal finalYem_claimamt_a = yem_claimamt_a; + BigDecimal finalYem_claimamtbase_a = yem_claimamtbase_a; + longMapLinkedHashMap.forEach((k, v) -> + { + BigDecimal salcontractamt = BigDecimal.ZERO; + // 产品分类 + long productsId = 0; + for (DynamicObject object : subCollection) { + if (object.getLong("yem_salcontractno.id") == k) { + salcontractamt = object.getBigDecimal("yem_salcontractamt"); + productsId = object.getLong("yem_productclassify.id"); + } + } + + // 查询配件客商额度申请单 + // 财务组织 + DynamicObject orgId = (DynamicObject) this.getModel().getValue("org"); + // 客户名称 + DynamicObject customerId = (DynamicObject) this.getModel().getValue("yem_comegoman"); + // 结算币别 + DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency"); + // 单据状态 = 已审核 + QFilter qFilters = new QFilter("billstatus", QCP.equals, "C"); + // 业务组织 = 财务组织 + if (orgId != null) { + qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id"))); + } + // 客户名称 = 客户名称 + if (customerId != null) { + qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id"))); + } + // 产品分类 = 产品分类 + if (currency != null) { + qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id"))); + } + // 合同上结算币别 = 额度申请上 额度币别 + qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); + // 查询配件客商额度申请单 + DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); + if (partsmerchant != null) { + // 配件客商额度申请单明细 + DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); + for (DynamicObject object : partsmerchantCollection) { + if (object.getLong("yem_cn.id") == k) { + + BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); + // 合同金额 + object.set("yem_salcontractamt", v.get("salcontractamt")); + // 认领金额 + object.set("yem_claimamt", finalYem_claimamt_a); + // 认领金额本位币 + object.set("yem_claimamtbase", finalYem_claimamtbase_a); + + // 合同金额 = 认领金额 + if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { + object.set("yem_writtenamt", object.get("yem_sum")); + object.set("yem_locwrittenamt", object.get("yem_localsum")); + object.set("yem_pennsylvania", new Date()); + } else { + object.set("yem_writtenamt", null); + object.set("yem_locwrittenamt", null); + object.set("yem_pennsylvania", null); + } + } + } + // 将数据保存到分录 + SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); + SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); + } + }); + } } } - } /** * 生成贷记单 From 019956ce30ca88f5c43ad93149a175a37687595f Mon Sep 17 00:00:00 2001 From: zhouc Date: Mon, 23 Sep 2024 16:15:32 +0800 Subject: [PATCH 18/24] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=BA=91=E4=B9=8B?= =?UTF-8?q?=E5=AE=B6=E5=AE=A1=E6=A0=B8=E5=90=AF=E5=8A=A8=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=8F=AA=E9=9C=80=E8=A6=81=E4=B8=8A=E4=BC=A0PDF=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ia/intebilllogon/commom/CommonUtils.java | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/yem/ia/intebilllogon/commom/CommonUtils.java b/src/main/java/com/yem/ia/intebilllogon/commom/CommonUtils.java index cc149454..acea71a0 100644 --- a/src/main/java/com/yem/ia/intebilllogon/commom/CommonUtils.java +++ b/src/main/java/com/yem/ia/intebilllogon/commom/CommonUtils.java @@ -301,25 +301,27 @@ public class CommonUtils { if (fileurl.contains("http://localhost:8080/ierp/")) { fileurl = fileurl.replace("http://localhost:8080/", "http://10.64.112.152:8022/"); } - if (yem_ispdf && filename.endsWith(".pdf")) { - String result = YunzhijiaUtils.uploadfile(fileurl, accessToken, (String) map.get("name")); - JSONObject json = JSONObject.parseObject(result); - Boolean success = json.getBoolean("success"); - if (success) { - JSONArray data = json.getJSONArray("data"); - for (int j = 0; j < data.size(); j++) { - JSONObject object = new JSONObject(); - JSONObject jsonObject = data.getJSONObject(j); - if (jsonObject != null) { + if (yem_ispdf) { + if (filename.endsWith(".pdf")) { + String result = YunzhijiaUtils.uploadfile(fileurl, accessToken, (String) map.get("name")); + JSONObject json = JSONObject.parseObject(result); + Boolean success = json.getBoolean("success"); + if (success) { + JSONArray data = json.getJSONArray("data"); + for (int j = 0; j < data.size(); j++) { + JSONObject object = new JSONObject(); + JSONObject jsonObject = data.getJSONObject(j); + if (jsonObject != null) { // object.put("fileName", jsonObject.getString("fileName")); - object.put("fileName", map.get("name").toString()); - object.put("fileId", jsonObject.getString("fileId")); - object.put("fileSize", jsonObject.getString("length")); - object.put("fileType", jsonObject.getString("fileType")); - object.put("fileExt", map.get("type").toString()); - jsonArray.add(object); - //创建ERP与云之家对照表 - Addattyunzhijia(formId, pkId, map, attachKey, jsonObject); + object.put("fileName", map.get("name").toString()); + object.put("fileId", jsonObject.getString("fileId")); + object.put("fileSize", jsonObject.getString("length")); + object.put("fileType", jsonObject.getString("fileType")); + object.put("fileExt", map.get("type").toString()); + jsonArray.add(object); + //创建ERP与云之家对照表 + Addattyunzhijia(formId, pkId, map, attachKey, jsonObject); + } } } } From 934abaa1944e0287a69fd369babbd570a0e644c7 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 16:30:44 +0800 Subject: [PATCH 19/24] =?UTF-8?q?fix:=E5=8F=91=E8=BF=90=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=8D=95=E7=89=A9=E6=96=99=E6=9F=A5=E8=AF=A2=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ShippingDetailsFormPlugin.java | 49 +++++++++++++++++-- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java index 45eb6084..2a3c9b7c 100644 --- a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java +++ b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java @@ -22,6 +22,7 @@ import kd.bos.form.FormShowParameter; import kd.bos.form.IFormView; import kd.bos.form.ShowType; import kd.bos.form.control.Control; +import kd.bos.form.control.EntryGrid; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.field.BasedataEdit; @@ -189,6 +190,47 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef DynamicObject dataEntity = this.getModel().getDataEntity(true); DynamicObject yem_bd_products = dataEntity.getDynamicObject("yem_bd_products"); + EntryGrid entryGrid = this.getControl("yem_bd_products"); + //获取选中行,数组为行号,从0开始int[] + int selectRows[] = entryGrid.getSelectRows(); + if (selectRows.length > 0) { + for (int selectRow : selectRows) { + DynamicObject entryRows = this.getModel().getEntryEntity("yem_es_materialinfo").get(selectRow); + DynamicObject yem_materiel = entryRows.getDynamicObject("yem_materiel"); + if (yem_materiel != null) { + long materielid = yem_materiel.getLong("id"); + String materienumber = yem_materiel.getString("number"); + Map getinventoryseva = getinventoryseva(materielid, materienumber, yem_bd_products); + if (getinventoryseva.size() > 0) { + this.getModel().setValue("yem_inventoryseva", getinventoryseva.get("yem_gmpjqty"), selectRow); + this.getModel().setValue("yem_inventorydif", getinventoryseva.get("yem_qtysub"), selectRow); + BigDecimal inventoryseva = (BigDecimal) getModel().getValue("yem_inventoryseva", selectRow); + BigDecimal tolreqqty = (BigDecimal) getinventoryseva.get("tolreqqty"); + BigDecimal qty = entryRows.getBigDecimal("yem_qty"); + this.getModel().setValue("yem_currinventorydif", inventoryseva.subtract(qty), selectRow); + } + } + } + } else { + DynamicObjectCollection yem_es_materialinfo = dataEntity.getDynamicObjectCollection("yem_es_materialinfo"); + for (int i = 0; i < yem_es_materialinfo.size(); i++) { + DynamicObject object = yem_es_materialinfo.get(i); + DynamicObject yem_materiel = object.getDynamicObject("yem_materiel"); + if (yem_materiel != null) { + long materielid = yem_materiel.getLong("id"); + String materienumber = yem_materiel.getString("number"); + Map getinventoryseva = getinventoryseva(materielid, materienumber, yem_bd_products); + if (getinventoryseva.size() > 0) { + this.getModel().setValue("yem_inventoryseva", getinventoryseva.get("yem_gmpjqty"), i); + this.getModel().setValue("yem_inventorydif", getinventoryseva.get("yem_qtysub"), i); + BigDecimal inventoryseva = (BigDecimal) getModel().getValue("yem_inventoryseva", i); + BigDecimal tolreqqty = (BigDecimal) getinventoryseva.get("tolreqqty"); + BigDecimal qty = object.getBigDecimal("yem_qty"); + this.getModel().setValue("yem_currinventorydif", inventoryseva.subtract(qty), i); + } + } + } + } DynamicObjectCollection yem_es_materialinfo = dataEntity.getDynamicObjectCollection("yem_es_materialinfo"); for (int i = 0; i < yem_es_materialinfo.size(); i++) { DynamicObject object = yem_es_materialinfo.get(i); @@ -246,7 +288,7 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef collect(dataEntity); SaveServiceHelper.save(new DynamicObject[]{dataEntity}); } - if("submit".equals(key)){ + if ("submit".equals(key)) { this.getView().invokeOperation("refresh"); } } @@ -496,7 +538,6 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef super.propertyChanged(e); String name = e.getProperty().getName(); IDataModel model = this.getModel(); - IFormView view = this.getView(); Object newValue = e.getChangeSet()[0].getNewValue(); DynamicObject dataEntity = model.getDataEntity(true); DynamicObjectCollection yem_es_materialinfo = dataEntity.getDynamicObjectCollection("yem_es_materialinfo"); @@ -543,13 +584,13 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef break; case "yem_qty": case "yem_offeramount": - DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_es_salescontrac_s"); + DynamicObjectCollection collection = dataEntity.getDynamicObjectCollection("yem_es_salescontrac_s"); for (DynamicObject dynamicObject : collection) { BigDecimal raprate = dynamicObject.getBigDecimal("yem_raprate"); BigDecimal offeramount = dataEntity.getBigDecimal("yem_offeramount"); dynamicObject.set("yem_rapamt", PaymentControlUtil.getAdvancePayment(offeramount, raprate)); + this.getView().updateView("yem_es_salescontrac_s"); } - this.getView().invokeOperation("save"); break; case "yem_bigcabinetnumbers": countBigCabinetQty(model);//汇总表头大柜数量 From cd55e8e4d3159394389efed3117a64ad8e552303 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 20:16:25 +0800 Subject: [PATCH 20/24] =?UTF-8?q?fix:=E6=94=B6=E6=AC=BE=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dynamic/GatheringClaimFormPlugin.java | 2 + .../wm/fm/gathering/from/GatheringEcit.java | 49 +++++++++++++++++-- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java b/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java index 5905f99b..d9ce09a7 100644 --- a/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java +++ b/src/main/java/com/yem/wm/fm/gathering/dynamic/GatheringClaimFormPlugin.java @@ -383,6 +383,8 @@ public class GatheringClaimFormPlugin extends AbstractFormPlugin implements RowC } } } + DynamicObjectCollection yemClaimdetail = this.getModel().getEntryEntity("yem_claimdetail"); + this.getView().returnDataToParent(yemClaimdetail); this.getView().close(); } diff --git a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java index 6f0803aa..9305b83e 100644 --- a/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java +++ b/src/main/java/com/yem/wm/fm/gathering/from/GatheringEcit.java @@ -981,22 +981,63 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL orderplat(key, map.get(key)); } } - undate_receipt(); + undate_receipt(e); } view.invokeOperation("save"); view.invokeOperation("refresh"); } - private void undate_receipt() { + private void undate_receipt(ClosedCallBackEvent e) { // 收款单 收款明细 DynamicObjectCollection collection = this.getModel().getEntryEntity("yem_receiptdetail"); - if (!collection.isEmpty()) { for (DynamicObject dynamicObject : collection) { // 认领明细(子单据体) DynamicObjectCollection subCollection = dynamicObject.getDynamicObjectCollection("yem_claimdetail"); if (subCollection.isEmpty()) { - continue; + // 查询配件客商额度申请单 + DynamicObjectCollection returnData = (DynamicObjectCollection) e.getReturnData(); + long productsId = 0; + for (DynamicObject object : returnData) { + productsId = object.getLong("yem_productclassify.id"); + } + // 财务组织 + DynamicObject orgId = (DynamicObject) this.getModel().getValue("org"); + // 客户名称 + DynamicObject customerId = (DynamicObject) this.getModel().getValue("yem_comegoman"); + // 结算币别 + DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency"); + // 单据状态 = 已审核 + QFilter qFilters = new QFilter("billstatus", QCP.equals, "C"); + // 业务组织 = 财务组织 + if (orgId != null) { + qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id"))); + } + // 客户名称 = 客户名称 + if (customerId != null) { + qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id"))); + } + // 产品分类 = 产品分类 + if (currency != null) { + qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id"))); + } + qFilters.and(new QFilter("yem_productcategorie", QCP.equals, productsId)); + // 查询配件客商额度申请单 + DynamicObject partsmerchant = BusinessDataServiceHelper.loadSingle("yem_im_partsmerchant", qFilters.toArray()); + if (partsmerchant != null) { + // 配件客商额度申请单明细 + DynamicObjectCollection partsmerchantCollection = partsmerchant.getDynamicObjectCollection("yem_im_entryentity_m"); + for (DynamicObject object : partsmerchantCollection) { + // 认领金额 + object.set("yem_claimamt", 0); + // 认领金额本位币 + object.set("yem_claimamtbase", 0); + + // 将数据保存到分录 + SaveServiceHelper.save(new DynamicObject[]{partsmerchant}); + SalesOrderUtils.calcCreditAmount(partsmerchant.getLong("id")); + } + } } // 合同号 - 认领金额, 认领金额本位币 From 8d6e76a1890e260e87d4bd398ac799265a1d6fc5 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 17:29:25 +0800 Subject: [PATCH 21/24] =?UTF-8?q?fix:=E5=AE=A1=E6=A0=B8=E6=97=B6=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=90=88=E5=90=8C=E5=8F=B7=E8=8E=B7=E5=8F=96=E8=B4=A2?= =?UTF-8?q?=E5=8A=A1=E4=BF=A1=E6=81=AF=E3=80=8A=E4=BB=B7=E7=A8=8E=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E3=80=8B=E6=B1=87=E6=80=BB=EF=BC=8C=E5=B0=86=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E7=BC=96=E5=8F=B7=E6=8B=BC=E6=8E=A5=EF=BC=88=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E5=BD=93=E5=89=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/DeliverNoticeNewAuditOp.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeNewAuditOp.java b/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeNewAuditOp.java index 2915a851..f95f04a5 100644 --- a/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeNewAuditOp.java +++ b/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeNewAuditOp.java @@ -1,5 +1,6 @@ package com.yem.wm.im.delivernotice.op; +import com.yem.wm.utils.DynamicObjectUtil; import kd.bos.data.BusinessDataReader; import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; @@ -23,6 +24,7 @@ import kd.bos.servicehelper.botp.ConvertServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -68,6 +70,22 @@ public class DeliverNoticeNewAuditOp extends AbstractOperationServicePlugIn { if (yem_es_salesorder != null) { yem_partscredit = yem_es_salesorder.getString("yem_partscredit"); } + BigDecimal yem_totalallamount = BigDecimal.ZERO; + String billno = ""; + String selectfield = DynamicObjectUtil.getSelectfields("yem_es_delivernotice", false); + DynamicObject[] loaded = BusinessDataServiceHelper.load("yem_es_delivernotice", selectfield + , new QFilter[]{new QFilter("yem_contractnum", QCP.equals, dataEntitie.getString("yem_contractnum")) + ,new QFilter("id",QCP.not_equals,dataEntitie.getLong("id"))}); + if (loaded!=null){ + for (DynamicObject dynamicObject : loaded) { + yem_totalallamount = yem_totalallamount.add(dynamicObject.getBigDecimal("yem_totalallamount")); + if (billno.isEmpty()){ + billno = dataEntitie.getString("billno")+","+dynamicObject.getString("billno"); + }else { + billno = billno+","+dynamicObject.getString("billno"); + } + } + } if (isAccGift && yem_partscredit.equals("B")) { String name = dataEntitie.getDynamicObjectType().getName(); PushArgs pushArgs = setPushArgs(dataEntitie, "yem_debcrednote", "1815340132866221056"); @@ -85,6 +103,8 @@ public class DeliverNoticeNewAuditOp extends AbstractOperationServicePlugIn { QFilter qFilter1 = new QFilter("number", QCP.equals, "JDJLX-0002"); DynamicObject Object = BusinessDataServiceHelper.loadSingle("yem_bd_debcredtype", "id,number,name", qFilter1.toArray()); debCredNote.set("yem_credittype", Object); + debCredNote.set("yem_outboundorderamt",yem_totalallamount); + debCredNote.set("yem_outboundordernumbe",billno); String debCredNoteNumber = debCredNote.getDynamicObjectType().getName(); OperationResult save = OperationServiceHelper.executeOperate("save", debCredNoteNumber, new DynamicObject[]{debCredNote}, OperateOption.create()); if (save.isSuccess()) { From 6887f48742336e737708f60e1d2ec1eef62b0ac4 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 21:26:21 +0800 Subject: [PATCH 22/24] =?UTF-8?q?fix:=E5=A6=82=E6=9E=9C=E8=AF=A2=E4=BB=B7?= =?UTF-8?q?=E5=8D=95=E4=B8=AD=E7=9A=84=E4=BB=B7=E6=A0=BC=EF=BC=88=E5=8C=85?= =?UTF-8?q?=E6=8B=AC=E6=98=8E=E7=BB=86=E4=BF=A1=E6=81=AF=E7=9A=84=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=92=8C=E5=A4=9A=E5=8A=9F=E8=83=BD=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E4=BB=B7=E6=A0=BC=EF=BC=89=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E6=9B=B4=E6=96=B0=E6=95=B4=E6=9C=BA=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../im/inquirylist/op/InquirylistAudit.java | 55 +++++++++++++++++-- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java b/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java index bb3cc4c6..0ad303d7 100644 --- a/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java +++ b/src/main/java/com/yem/wm/im/inquirylist/op/InquirylistAudit.java @@ -62,6 +62,8 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { for (DynamicObject dynamicObject : yemImDetailedinfor) { DynamicObject yemProductmodel = dynamicObject.getDynamicObject("yem_productmodel"); BigDecimal yemQingdaounitprice = dynamicObject.getBigDecimal("yem_qingdaounitprice"); + BigDecimal yemUnitprice = dynamicObject.getBigDecimal("yem_unitprice"); + BigDecimal yemForeigntradeprice = dynamicObject.getBigDecimal("yem_foreigntradeprice"); if (yemProductmodel != null) { DynamicObject yemProducts = yemProductmodel.getDynamicObject("yem_products"); if (yemProducts != null) { @@ -78,7 +80,15 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { long yemModelLong = yemModel.getLong("id"); long yemProductmodelLong = yemProductmodel.getLong("id"); if (yemModelLong == yemProductmodelLong) { - Basic.set("yem_pricefob", yemQingdaounitprice); + if (yemQingdaounitprice.compareTo(BigDecimal.ZERO) > 0) { + Basic.set("yem_pricefob", yemQingdaounitprice); + } + if (yemUnitprice.compareTo(BigDecimal.ZERO) > 0) { + Basic.set("yem_fcafactoryprice", yemUnitprice); + } + if (yemForeigntradeprice.compareTo(BigDecimal.ZERO) > 0) { + Basic.set("yem_foreigntradeprice", yemForeigntradeprice); + } } } } @@ -92,20 +102,55 @@ public class InquirylistAudit extends AbstractOperationServicePlugIn { private void productmodel(DynamicObject dataEntitie) { DynamicObjectCollection yemImDetailedinfor = dataEntitie.getDynamicObjectCollection("yem_im_detailedinfor"); + DynamicObjectCollection yemMulticonfig = dataEntitie.getDynamicObjectCollection("yem_multiconfig"); for (DynamicObject dynamicObject : yemImDetailedinfor) { DynamicObject yemProductmodel = dynamicObject.getDynamicObject("yem_productmodel"); if (yemProductmodel != null) { DynamicObject yemProducts = yemProductmodel.getDynamicObject("yem_products"); if (yemProducts != null) { long yemProductsLong = yemProducts.getLong("id"); - String selectfield = DynamicObjectUtil.getSelectfields("yem_pricelibrary", false); - String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_pricelibrary", "yem_basicmodel", false); - DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", selectfields + DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle("yem_pricelibrary", "id,billno,yem_totaldisabledstatus,yem_bd_products" + + ",yem_optional,yem_optional.yem_disabledstate,yem_optional.yem_entryid_o,yem_optional.yem_salesprice_o,yem_optional.yem_salesmarkup_o" + + ",yem_replaceable,yem_replaceable.yem_disabledstate1,yem_replaceable.yem_entryid_re,yem_replaceable.yem_salesprice_re,yem_replaceable.yem_salesmarkup_re" + + ",yem_retrofitting,yem_retrofitting.yem_disabledstate2,yem_retrofitting.yem_entryid_rt,yem_retrofitting.yem_salesprice_rt,yem_retrofitting.yem_salesmarkup_rt" , new QFilter[]{new QFilter("yem_bd_products.id", QCP.equals, yemProductsLong)}); if (loadSingle != null) { - loadSingle.set("yem_totaldisabledstatus","0"); + loadSingle.set("yem_totaldisabledstatus", "0"); + DynamicObjectCollection yemOptional = loadSingle.getDynamicObjectCollection("yem_optional"); + DynamicObjectCollection yem_replaceable = loadSingle.getDynamicObjectCollection("yem_replaceable"); + DynamicObjectCollection yem_retrofitting = loadSingle.getDynamicObjectCollection("yem_retrofitting"); + for (DynamicObject yemMulticonfigs : yemMulticonfig) { + long yemMulticonfigsLong = yemMulticonfigs.getLong("id"); + BigDecimal yemMarketprice = yemMulticonfigs.getBigDecimal("yem_marketprice"); + BigDecimal yem_marketraiseprice = yemMulticonfigs.getBigDecimal("yem_marketraiseprice"); + for (DynamicObject yem_optionals : yemOptional) { + yem_optionals.set("yem_disabledstate", "0"); + long aLong = yem_optionals.getLong("yem_entryid_o"); + if (aLong == yemMulticonfigsLong) { + yem_optionals.set("yem_salesprice_o",yem_marketraiseprice); + yem_optionals.set("yem_salesmarkup_o",yemMarketprice); + } + } + for (DynamicObject yem_replaceables : yem_replaceable) { + yem_replaceables.set("yem_disabledstate1", "0"); + long aLong = yem_replaceables.getLong("yem_entryid_re"); + if (aLong == yemMulticonfigsLong) { + yem_replaceables.set("yem_salesprice_re",yem_marketraiseprice); + yem_replaceables.set("yem_salesmarkup_re",yemMarketprice); + } + } + for (DynamicObject yem_retrofittings : yem_retrofitting) { + yem_retrofittings.set("yem_disabledstate2", "0"); + long aLong = yem_retrofittings.getLong("yem_entryid_rt"); + if (aLong == yemMulticonfigsLong) { + yem_retrofittings.set("yem_salesprice_rt",yem_marketraiseprice); + yem_retrofittings.set("yem_salesmarkup_rt",yemMarketprice); + } + } + } } + SaveServiceHelper.update(loadSingle); } } } From 5a1dc328049aaab7c480f668719e9d94513060b6 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 21:26:54 +0800 Subject: [PATCH 23/24] =?UTF-8?q?fix:=E6=9F=A5=E8=AF=A2=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java index 2a3c9b7c..16e516d6 100644 --- a/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java +++ b/src/main/java/com/yem/wm/es/shippingdetails/form/ShippingDetailsFormPlugin.java @@ -190,7 +190,7 @@ public class ShippingDetailsFormPlugin extends AbstractBillPlugIn implements Bef DynamicObject dataEntity = this.getModel().getDataEntity(true); DynamicObject yem_bd_products = dataEntity.getDynamicObject("yem_bd_products"); - EntryGrid entryGrid = this.getControl("yem_bd_products"); + EntryGrid entryGrid = this.getControl("yem_es_materialinfo"); //获取选中行,数组为行号,从0开始int[] int selectRows[] = entryGrid.getSelectRows(); if (selectRows.length > 0) { From 30a4b6e65c32eafaae16633f7a2cc001d56230a8 Mon Sep 17 00:00:00 2001 From: ljw Date: Mon, 23 Sep 2024 20:37:50 +0800 Subject: [PATCH 24/24] =?UTF-8?q?fix:=E5=88=A0=E9=99=A4=E8=A1=A3=E6=80=BB?= =?UTF-8?q?=E7=AD=BE=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/SalesContracUnauditOp.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/yem/wm/es/salescontrac/op/SalesContracUnauditOp.java diff --git a/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracUnauditOp.java b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracUnauditOp.java new file mode 100644 index 00000000..27ac83fb --- /dev/null +++ b/src/main/java/com/yem/wm/es/salescontrac/op/SalesContracUnauditOp.java @@ -0,0 +1,44 @@ +package com.yem.wm.es.salescontrac.op; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.plugin.args.EndOperationTransactionArgs; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.util.List; + +/** + * @author ljw + * @date 2024/9/23 20:35 + * @description SalesContracUnauditOp + * 删除衣总签章 + */ +public class SalesContracUnauditOp extends AbstractOperationServicePlugIn { + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + List fieldKeys = e.getFieldKeys(); + fieldKeys.add("yem_managersign"); + } + @Override + public void endOperationTransaction(EndOperationTransactionArgs e) { + super.endOperationTransaction(e); + DynamicObject[] dataEntities = e.getDataEntities(); + for(DynamicObject dataEntitie : dataEntities){ + dataEntitie = BusinessDataServiceHelper.loadSingle(dataEntitie.getPkValue(),dataEntitie.getDynamicObjectType().getName()); + clearManagerSign(dataEntitie); + } + } + + /** + * 反审核的时候,清空外销合同-经理签章; + * @param dataEntitie + */ + private void clearManagerSign(DynamicObject dataEntitie) + { + dataEntitie.set("yem_managersign", null); + SaveServiceHelper.save(new DynamicObject[]{dataEntitie}); + } +}