From 09119816f215a1b7fd3841b4afeeee93a46610be Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Wed, 23 Jul 2025 16:50:59 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A2=84=E4=BB=98=E5=8D=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=94=B6=E6=AC=BE=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/PrepaybillRecAccountCkOp.java | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PrepaybillRecAccountCkOp.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PrepaybillRecAccountCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PrepaybillRecAccountCkOp.java new file mode 100644 index 0000000..27fc4a6 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PrepaybillRecAccountCkOp.java @@ -0,0 +1,127 @@ +package zcgj.zcdev.zcdev.fs.plugin.operate; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.servicehelper.user.UserServiceHelper; +import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 预付单单收款信息账户检查 + */ +public class PrepaybillRecAccountCkOp extends AbstractOperationServicePlugIn { + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("costcompany"); + e.getFieldKeys().add("accountentry"); + e.getFieldKeys().add("billpayertype"); + e.getFieldKeys().add("billpayerid"); + } + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户所属组织 + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + //当前所在的组织是属于矿山下的 + //if(OrgCheckUtils.isKS(currentOrgId)){ + e.getValidators().add(new ValidatorExt()); + //} + } + + class ValidatorExt extends AbstractValidator { + @Override + public void validate() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM"); + ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); + Map> allMap = new HashMap<>(); + //当前提交的探亲单据id集合 + Map> currentBillIdListMap = new HashMap<>(); + + for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + long aLong = dataEntity.getLong("id"); + //获取报销人 + DynamicObject applier = dataEntity.getDynamicObject("applier"); + long applierId = applier.getLong("id"); + //获取申请日期 + Object costcompanyObj = dataEntity.get("costcompany"); + Object costdeptObj = dataEntity.get("costdept"); + if(costcompanyObj!=null && costdeptObj != null){ + DynamicObject costcompany = (DynamicObject)costcompanyObj; + long costcompanyId = costcompany.getLong("id"); + if(OrgCheckUtils.isKS(costcompanyId)){ + String billpayertype = dataEntity.getString("billpayertype"); //往来单位类型 + if(billpayertype ==null){ + this.addFatalErrorMessage(extendedDataEntity, String.format("往来类型不能为空")); + return; + } + DynamicObject billpayerid = dataEntity.getDynamicObject("billpayerid");//往来单位 + String numberVal = null; + if(billpayerid!=null){ + numberVal = billpayerid.getString("number"); + }else{ + this.addFatalErrorMessage(extendedDataEntity, String.format("往来单位不能为空")); + return; + } + + DynamicObjectCollection accountentry = dataEntity.getDynamicObjectCollection("accountentry"); + int i = 0; + + for (DynamicObject dynamicObject : accountentry) { + i++; + String payertype = dynamicObject.getString("payertype");//收款人类型 + String payeraccountname = dynamicObject.getString("payeraccountname"); //账户名称 + String accountTxt = dynamicObject.getString("zcgj_account_txt"); //账户名称 + boolean isOk=true; + if("bd_supplier".equals(payertype)){ //供应商 + DynamicObject supplier = dynamicObject.getDynamicObject("supplier"); + if(supplier ==null){ + this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,收款人不能为空!",i)); + continue; + } + String name = supplier.getString("name"); + isOk = payeraccountname.equals(name); + if(isOk && "bd_supplier".equals(billpayertype)){ + String number = supplier.getString("number"); + isOk = number.equals(numberVal); + } + }else if("bd_customer".equals(payertype)){ //客户 + DynamicObject customer = dynamicObject.getDynamicObject("customer"); + if(customer ==null){ + this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,收款人不能为空!",i)); + continue; + } + String name = customer.getString("name"); + isOk = payeraccountname.equals(name); + if(isOk && "bd_customer".equals(billpayertype)){ + String number = customer.getString("number"); + isOk = number.equals(numberVal); + } + } + if(!isOk && accountTxt.isEmpty()){ + this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,往来单位、收款人名称和账户名称不一致!请在当前行填写账户不一致说明!",i)); + } + + } + } + } + } + } + } +} From e087d24de1370339d293a86e7b6e1ce133fa2055 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Wed, 23 Jul 2025 17:34:35 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E8=B5=84=E9=87=91?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=8D=95=E8=B4=B9=E7=94=A8?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/PaymentapplyGeneralPlugin.java | 69 ++++++++++++++++--- 1 file changed, 60 insertions(+), 9 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java index 6eecda6..85f4b7d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java @@ -4,24 +4,28 @@ import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.BillShowParameter; import kd.bos.bill.OperationStatus; import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.events.PropertyChangedArgs; -import kd.bos.permission.api.HasPermOrgResult; -import kd.bos.servicehelper.org.OrgUnitServiceHelper; -import kd.bos.servicehelper.permission.PermissionServiceHelper; -import kd.bos.servicehelper.user.UserServiceHelper; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; +import kd.bos.mvc.bill.BillView; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; import kd.sdk.plugin.Plugin; +import java.util.ArrayList; import java.util.EventObject; -import java.util.HashSet; import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; /** * 1:付款申请单通用插件 */ -public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin { +public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + + @Override public void afterBindData(EventObject e) { @@ -114,4 +118,51 @@ public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plu }*/ } + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + //仅针对矿山下组织下的逻辑 + BasedataEdit expenseitem = this.getControl("zcgj_expenseitem"); //费用项目 + if (expenseitem != null) { + expenseitem.addBeforeF7SelectListener(this); + } + + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + String billFormId = ((BillView) this.getView()).getFormId();//单据标识 + if("ec_paymentapply".equals(billFormId)){//付款申请单 + if (name.equals("zcgj_expenseitem")) { //科目分类根据科目分类基础资料过滤 + int row = beforeF7SelectEvent.getRow(); + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity"); + if (dynamicObjectCollection != null) { + String paymenttype = dynamicObjectCollection.get(row).getString("paymenttype");//支付类型 + if("PREPAYMENT".equals(paymenttype)){ + QFilter biztypefilter = new QFilter("zcgj_biztype", QCP.equals, "50"); //过滤业务单据为支出财务确认单 + //分录过滤 + //使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据 + //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据 + DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", + "zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});//费用与科目分类单 + List numbers = new ArrayList<>(); + if (accountfeeEntries != null) { + for (DynamicObject dynamicObject : accountfeeEntries) { + String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number"); + if (zcgjAccounttypeNumber != null) { + numbers.add(zcgjAccounttypeNumber); + } + } + } + QFilter qFilter = new QFilter("number", QCP.in, numbers); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + formShowParameter.getListFilterParameter().getQFilters().add(qFilter); + } + + } + } + } + + } } From 9547c02b0c3e23c7e6d2c9860796f16d9c56eeae Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Thu, 24 Jul 2025 11:18:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=90=88=E5=90=8C=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E9=80=89=E6=8B=A9=E8=BF=87=E6=BB=A4=E6=8F=92?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractRevisionListingExtPlugin.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java new file mode 100644 index 0000000..20d4263 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java @@ -0,0 +1,79 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.ec.contract.formplugin.ContractRevisionListingPlugin; + +import java.util.List; + +public class ContractRevisionListingExtPlugin extends ContractRevisionListingPlugin { + + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforef7selectevent) { + switch (beforef7selectevent.getProperty().getName()) { + case "listid": + this.beforeListingSelect(beforef7selectevent); + break; + case "listunitproject": + this.beforeUnitProjectSelect(beforef7selectevent); + } + } + + + private void beforeListingSelect(BeforeF7SelectEvent beforef7selectevent) { + ListShowParameter lsp = (ListShowParameter)beforef7selectevent.getFormShowParameter(); + List qFilters = lsp.getListFilterParameter().getQFilters(); + this.addContractAndModelFilter(qFilters); + this.addNewListingSuperFilter(qFilters); + int row = beforef7selectevent.getRow(); + DynamicObject con = (DynamicObject)this.getModel().getValue("contract"); + String baseType = BusinessDataServiceHelper.loadSingle(con.getDynamicObject("contracttype").getPkValue(), "ec_conttype").getDynamicObject("contattr").getString("basictype"); + String subChangeType = (String)this.getModel().getValue("subchangetype", row); + /*if (StringUtils.equals(subChangeType, "1") && !"09".equals(baseType)) { + qFilters.add(new QFilter("lstsettleqty", "<", "totalqty", true)); + }*/ + + int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry"); + Object listModelId = this.getModel().getValue("listmodelid", rowIndex); + lsp.setCustomParam("listmodelid", listModelId); + } + + private void addContractAndModelFilter(List qFilters) { + int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry"); + Object listModelId = this.getModel().getValue("listmodelid", rowIndex); + if (StringUtils.isNotBlank(listModelId)) { + qFilters.add(new QFilter("listingmodel", "=", Long.parseLong(listModelId.toString()))); + } + + DynamicObject contract = (DynamicObject)this.getModel().getValue("contract"); + if (contract != null) { + qFilters.add(new QFilter("contractid", "=", contract.getLong("id"))); + } + + } + + private void addNewListingSuperFilter(List qFilters) { + for(DynamicObject entry : this.getModel().getEntryEntity("entryentity")) { + if (!"3".equals(entry.getString("subchangetype")) && !"2".equals(entry.getString("subchangetype"))) { + DynamicObject listing = entry.getDynamicObject("listid"); + if (listing != null) { + qFilters.add(new QFilter("id", "<>", listing.getLong("id"))); + } + } else { + DynamicObject parent = entry.getDynamicObject("parentgroup"); + if (parent != null) { + boolean isLeaf = parent.getBoolean("isleaf"); + if (isLeaf) { + qFilters.add(new QFilter("id", "<>", parent.getLong("id"))); + } + } + } + } + + } +} From f363823274a1e5ea81c3f123ab2c1d14a9320f73 Mon Sep 17 00:00:00 2001 From: xiaoshi <2272816786@qq.com> Date: Thu, 24 Jul 2025 17:18:30 +0800 Subject: [PATCH 4/4] youhua --- .../plugin/form/EquipmentCardListPlugin.java | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java index e02e3ad..e49b252 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCardListPlugin.java @@ -1,6 +1,8 @@ package zcgj.zcdev.zcdev.pr.plugin.form; import com.greenpineyu.fel.common.NumberUtil; +import kd.bos.coderule.api.CodeRuleInfo; +import kd.bos.coderule.service.cache.CodeRuleCache; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.ListSelectedRow; @@ -18,6 +20,7 @@ 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.coderule.CodeRuleServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.fi.gl.util.DateUtil; @@ -60,15 +63,18 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi view.invokeOperation("refresh"); } else if (itemKey.equals("zcgj_asset")) {//同步资产卡片 List strings = new ArrayList<>(); - strings.add("100104"); - strings.add("100113"); - strings.add("100105"); - strings.add("100109"); - strings.add("100112"); + DynamicObject[] equipmenttype = BusinessDataServiceHelper.load("zcgj_equipmenttype", "number,zcgj_assetcat.number",null); + for (DynamicObject dynamicObject : equipmenttype) { + String number = dynamicObject.getString("zcgj_assetcat.number"); + if (number.isEmpty() && number!=null){ + strings.add(number) ; + } + } QFilter qFilter = new QFilter("assetcat.number", QCP.in, strings); - DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_card_real", "number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter}); + DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_asset_card", "zcgj_costcenter,headusedept,finentry,assetcat,number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter}); for (DynamicObject realcard : realcards) { String number = realcard.getString("number");//资产编码 +// DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 String assetname = realcard.getString("assetname");//资产名称 log.info("同步的实物卡片为"+number+assetname); String model = realcard.getString("model");//规格型号 @@ -80,6 +86,9 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi String manufacturer = realcard.getString("zcgj_manufacturer");//生产厂家 Date prodate = realcard.getDate("zcgj_prodate");//出场日期 DynamicObject storeplace = realcard.getDynamicObject("storeplace");//存放地点 + DynamicObject headusedept = realcard.getDynamicObject("headusedept");//使用部门 + DynamicObject zcgj_costcenter = realcard.getDynamicObject("zcgj_costcenter");//成本中心 + DynamicObjectCollection finentrys = realcard.getDynamicObjectCollection("finentry");//财务卡片分录 String fulladdress = null; if(storeplace!=null){ DynamicObject storeplaceinfo = BusinessDataServiceHelper.loadSingle("fa_storeplace", new QFilter[]{new QFilter("id", QCP.equals, storeplace.getLong("id"))}); @@ -101,12 +110,13 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi if (eceq_equipment_card!=null){ equipmentcard.set("id",eceq_equipment_card.getLong("id")); } + equipmentcard.set("billno",timeText);//单据编号 equipmentcard.set("status","C");//单据状态 equipmentcard.set("billstatus","C");// equipmentcard.set("enable","1");//可用 equipmentcard.set("property","OWN");//设备性质 - equipmentcard.set("number",number);//设备编号 + equipmentcard.set("number",getCodeRule(equipmentcard,"53BT+ZJB86=L"));//设备编号 equipmentcard.set("name",assetname);//设备名称 equipmentcard.set("modelnum",model);//规格型号 equipmentcard.set("indate",realaccountdate);//入库日期 @@ -129,6 +139,25 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi equipmentcard.set("modifytime",modifytime);//修改日期 equipmentcard.set("auditor",auditor);//审核人 equipmentcard.set("auditdate",auditdate);//审核日期 + equipmentcard.set("zcgj_assetnumber",number);//资产编码 + equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 + equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//审核日期 + + if(finentrys.size()>0){ + DynamicObject finentry = finentrys.get(0); + BigDecimal finOriginalval = finentry.getBigDecimal("fin_originalval");//资产原值 + BigDecimal fin_preusingamount = finentry.getBigDecimal("fin_preusingamount");//预计使用月 + BigDecimal fin_depredamount = finentry.getBigDecimal("fin_depredamount");//已折旧月 + BigDecimal fin_preresidualval = finentry.getBigDecimal("fin_preresidualval");//预计净残值 + BigDecimal fin_accumdepre = finentry.getBigDecimal("fin_accumdepre");//累计折旧 + BigDecimal fin_networth = finentry.getBigDecimal("fin_networth");//净值 + equipmentcard.set("zcgj_networth",fin_networth); + equipmentcard.set("zcgj_accumdepre",fin_accumdepre); + equipmentcard.set("zcgj_depredamount",fin_depredamount); + equipmentcard.set("zcgj_preresidualval",fin_preresidualval); + equipmentcard.set("zcgj_preusingamount",fin_preusingamount); + equipmentcard.set("zcgj_unitprice",finOriginalval); + } if (eceq_equipment_card!=null){ SaveServiceHelper.update(equipmentcard); System.out.println(); @@ -217,4 +246,23 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi return false; } } + + /** + * 获取编码规则生成编码 + * @param data 实体 + * @param number 编码规则编码 + * @return + */ + public static String getCodeRule(DynamicObject data,String number) { + //查找编码规则 + DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)}); + //编码对象 + if (coderule != null) { + CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id")); + //生成箱号编码 + String archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data); + } + return null; + } + }