From a926ee073e900009357118ea1fd96eb167275c3f Mon Sep 17 00:00:00 2001 From: sez Date: Wed, 26 Nov 2025 17:01:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=89=A9=E6=96=99=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E4=BF=A1=E6=81=AF=E6=97=B6=E4=BF=AE=E6=94=B9=E5=8E=9F?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=BB=84=E7=BB=87=E3=80=81=E7=89=A9=E6=96=99?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E4=BF=A1=E6=81=AF=E5=86=85=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/MaterialManualAssignOpPlugin.java | 154 ++++++++---------- 1 file changed, 64 insertions(+), 90 deletions(-) diff --git a/lc123/cloud/app/plugin/operate/sys/MaterialManualAssignOpPlugin.java b/lc123/cloud/app/plugin/operate/sys/MaterialManualAssignOpPlugin.java index b46323a..1135a04 100644 --- a/lc123/cloud/app/plugin/operate/sys/MaterialManualAssignOpPlugin.java +++ b/lc123/cloud/app/plugin/operate/sys/MaterialManualAssignOpPlugin.java @@ -7,6 +7,7 @@ import kd.bos.entity.botp.runtime.ConvertOperationResult; import kd.bos.entity.botp.runtime.PushArgs; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperationResult; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.AddValidatorsEventArgs; import kd.bos.entity.plugin.args.AfterOperationArgs; @@ -18,6 +19,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.basedata.BaseDataServiceHelper; import kd.bos.servicehelper.botp.ConvertServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import java.util.ArrayList; @@ -99,37 +101,7 @@ public class MaterialManualAssignOpPlugin extends AbstractOperationServicePlugIn DynamicObject gzlc = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", QCP.equals, "GZLC")}); DynamicObject shlc = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{new QFilter("number", QCP.equals, "SHLC")}); - if (success) { - if (targetBillIds.size() > 0) { - for (Object targetBillId : targetBillIds) { - OperateOption option = OperateOption.create(); - option.setVariableValue(OperateOptionConst.ISHASRIGHT, "true"); - option.setVariableValue(OperateOptionConst.ORM_SAVEOP_REMOVECACHE, "true"); - DynamicObject sh = BusinessDataServiceHelper.loadSingle(targetBillId, targetEntityNumber); - sh.set("createorg", shlc); - - - List ids = new ArrayList<>(); - ids.add((Long) targetBillId); - BaseDataServiceHelper.managePermChange(targetEntityNumber, ids, shlc.getLong("id")); - - DynamicObject bj = (DynamicObject) new CloneUtils(false, true).clone(sh); - bj.set("createorg", bjlc); - bj.set("srccreateorg", bjlc); - bj.set("mbdmasterid", bj.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); - - DynamicObject gz = (DynamicObject) new CloneUtils(false, true).clone(sh); - gz.set("createorg", gzlc); - gz.set("srccreateorg", gzlc); - gz.set("mbdmasterid", gz.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); - - - } - } - } - + generateMaterialInfo(targetEntityNumber, targetBillIds, success, bjlc, gzlc, shlc); targetEntityNumber = "bd_materialpurchaseinfo";//物料采购信息 //目标单标识 pushArgs.setTargetEntityNumber(targetEntityNumber); @@ -142,36 +114,7 @@ public class MaterialManualAssignOpPlugin extends AbstractOperationServicePlugIn //获取下推目标单id targetBillIds = result.getTargetBillIds(); success = result.isSuccess(); - if (success) { - if (targetBillIds.size() > 0) { - for (Object targetBillId : targetBillIds) { - OperateOption option = OperateOption.create(); - option.setVariableValue(OperateOptionConst.ISHASRIGHT, "true"); - option.setVariableValue(OperateOptionConst.ORM_SAVEOP_REMOVECACHE, "true"); - DynamicObject sh = BusinessDataServiceHelper.loadSingle(targetBillId, targetEntityNumber); - sh.set("createorg", shlc); - - - List ids = new ArrayList<>(); - ids.add((Long) targetBillId); - BaseDataServiceHelper.managePermChange(targetEntityNumber, ids, shlc.getLong("id")); - - DynamicObject bj = (DynamicObject) new CloneUtils(false, true).clone(sh); - bj.set("createorg", bjlc); - bj.set("srccreateorg", bjlc); - bj.set("mbdmasterid", bj.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); - - DynamicObject gz = (DynamicObject) new CloneUtils(false, true).clone(sh); - gz.set("createorg", gzlc); - gz.set("srccreateorg", gzlc); - gz.set("mbdmasterid", gz.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); - - - } - } - } + generateMaterialInfo(targetEntityNumber, targetBillIds, success, bjlc, gzlc, shlc); ruleId = "2352406985778951168"; targetEntityNumber = "bd_materialsalinfo";//物料销售信息 @@ -185,37 +128,9 @@ public class MaterialManualAssignOpPlugin extends AbstractOperationServicePlugIn //获取下推目标单id targetBillIds = result.getTargetBillIds(); success = result.isSuccess(); - if (success) { - if (targetBillIds.size() > 0) { - for (Object targetBillId : targetBillIds) { - OperateOption option = OperateOption.create(); - option.setVariableValue(OperateOptionConst.ISHASRIGHT, "true"); - option.setVariableValue(OperateOptionConst.ORM_SAVEOP_REMOVECACHE, "true"); - DynamicObject sh = BusinessDataServiceHelper.loadSingle(targetBillId, targetEntityNumber); - sh.set("createorg", shlc); + generateMaterialInfo(targetEntityNumber, targetBillIds, success, bjlc, gzlc, shlc); - List ids = new ArrayList<>(); - ids.add((Long) targetBillId); - BaseDataServiceHelper.managePermChange(targetEntityNumber, ids, shlc.getLong("id")); - - DynamicObject bj = (DynamicObject) new CloneUtils(false, true).clone(sh); - bj.set("createorg", bjlc); - bj.set("srccreateorg", bjlc); - bj.set("mbdmasterid", bj.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); - - DynamicObject gz = (DynamicObject) new CloneUtils(false, true).clone(sh); - gz.set("createorg", gzlc); - gz.set("srccreateorg", gzlc); - gz.set("mbdmasterid", gz.getLong("id")); - SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); - - - } - } - } - /*Set dataIds = new HashSet(); long id = dynamicObject.getLong("id"); @@ -241,4 +156,63 @@ public class MaterialManualAssignOpPlugin extends AbstractOperationServicePlugIn }*/ } } + + /** + * 生成对应的物料业务信息(库存、采购、销售) + * + * @param targetEntityNumber 目标单据标识 + * @param targetBillIds 下推成功的目标单据id + * @param success 是否下推成功 + * @param bjlc 北京组织 + * @param gzlc 广州组织 + * @param shlc 上海组织 + */ + private void generateMaterialInfo(String targetEntityNumber, Set targetBillIds, boolean success, DynamicObject bjlc, DynamicObject gzlc, DynamicObject shlc) { + if (success) { + if (targetBillIds.size() > 0) { + for (Object targetBillId : targetBillIds) { + OperateOption option = OperateOption.create(); + option.setVariableValue(OperateOptionConst.ISHASRIGHT, "true"); + option.setVariableValue(OperateOptionConst.ORM_SAVEOP_REMOVECACHE, "true"); + DynamicObject sh = BusinessDataServiceHelper.loadSingle(targetBillId, targetEntityNumber); + sh.set("createorg", shlc); + sh.set("srccreateorg", shlc); + + List ids = new ArrayList<>(); + ids.add((Long) targetBillId); + BaseDataServiceHelper.managePermChange(targetEntityNumber, ids, shlc.getLong("id")); + + DynamicObject bj = (DynamicObject) new CloneUtils(false, true).clone(sh); + DynamicObject gz = (DynamicObject) new CloneUtils(false, true).clone(sh); + + OperationResult submitResult = OperationServiceHelper.executeOperate("submit", targetEntityNumber, new DynamicObject[]{sh}, OperateOption.create()); + if (submitResult.isSuccess()) { + OperationResult auditResult = OperationServiceHelper.executeOperate("audit", targetEntityNumber, new DynamicObject[]{sh}, OperateOption.create()); + } + + bj.set("createorg", bjlc); + bj.set("srccreateorg", bjlc); + SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); + bj.set("mbdmasterid", bj.getLong("id")); + SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); + submitResult = OperationServiceHelper.executeOperate("submit", targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); + if (submitResult.isSuccess()) { + OperationResult auditResult = OperationServiceHelper.executeOperate("audit", targetEntityNumber, new DynamicObject[]{bj}, OperateOption.create()); + } + + + gz.set("createorg", gzlc); + gz.set("srccreateorg", gzlc); + SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); + gz.set("mbdmasterid", gz.getLong("id")); + SaveServiceHelper.saveOperate(targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); + submitResult = OperationServiceHelper.executeOperate("submit", targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); + if (submitResult.isSuccess()) { + OperationResult auditResult = OperationServiceHelper.executeOperate("audit", targetEntityNumber, new DynamicObject[]{gz}, OperateOption.create()); + } + + } + } + } + } }