diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MessageCompiler.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MessageCompiler.java new file mode 100644 index 0000000..8b0c0a1 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/other/MessageCompiler.java @@ -0,0 +1,66 @@ +package zcgj.zcdev.zcdev.fs.plugin.other; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.earlywarn.EarlyWarnContext; +import kd.bos.entity.earlywarn.kit.StringTemplateParser; +import kd.bos.entity.earlywarn.kit.StringUtil; +import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageCompiler; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class MessageCompiler implements IEarlyWarnMessageCompiler { + + + @Override + public String getSingleMessage(String expression, List fields, DynamicObject data, EarlyWarnContext earlyWarnContext) { + if (expression == null || data == null){ + return ""; + } + Map map = new HashMap<>(); + for (String field : fields) { + String value = ""; + if ("zcgj_beginlocal".equals(field) + || "zcgj_debitlocal".equals(field) + || "zcgj_creditlocal".equals(field) + || "zcgj_yeardebitfor".equals(field) + || "zcgj_yearcreditfor".equals(field) + || "zcgj_endlocal".equals(field)){ + String[] arr = StringUtil.split(field, "."); + Object objValue = getValue(data, arr); + value = objValue == null?"" : objValue.toString(); + if(value!=null){ + BigDecimal valBig = new BigDecimal(value); + BigDecimal divide = valBig.setScale(2, RoundingMode.HALF_UP).divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP); + value = String.valueOf(divide); + } + }else { + String[] arr = StringUtil.split(field, "."); + Object objValue = getValue(data, arr); + value = objValue == null?"" : objValue.toString(); + } + map.put(field,value); + } + StringTemplateParser parser = new StringTemplateParser(); + return parser.parse(expression,name->map.get(name)); + } + private String getValue(DynamicObject data, String[] arr) { + if(null == arr || arr.length == 0){ + return ""; + } + Object obj = data.get(arr[0]); + if(obj instanceof DynamicObject){ + return getValue((DynamicObject)obj, Arrays.copyOfRange(arr, 1, arr.length)); + } + return StringUtil.toSafeString(obj); + } + + @Override + public String getMergeMessage(String s, List list, EarlyWarnContext earlyWarnContext) { + return ""; + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java index 3726c6f..fd3dc61 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java @@ -13,14 +13,15 @@ import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.user.UserServiceHelper; import java.util.ArrayList; import java.util.EventObject; import java.util.List; /* - * 设备命令单表单插件 - * 说明:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人 + * 设备调令单表单插件 + * 说明:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人;4:自动带出所属组织和部门 */ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { @Override @@ -32,10 +33,18 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be outProject.addBeforeF7SelectListener(this); BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目 inProject.addBeforeF7SelectListener(this); -// BasedataEdit outUser = this.getControl("zcgj_outuser"); //调出负责人 -// outUser.addBeforeF7SelectListener(this); -// BasedataEdit inUser = this.getControl("zcgj_inuser"); //调入负责人 -// inUser.addBeforeF7SelectListener(this); + } + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + long currentUserId = UserServiceHelper.getCurrentUserId(); + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + this.getModel().setValue("zcgj_department", mainOrgId);//部门 + DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 + if (costDept != null) { + setOrg(costDept); + } } @Override @@ -49,7 +58,7 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be int rowIndex = changeData.getRowIndex(); DynamicObject realCard = (DynamicObject) changeData.getNewValue();//新值 if (realCard != null) { - String realCardNumber = realCard.getString("number");//设备编码-设备编码 + String realCardNumber = realCard.getString("zcgj_assetnumber");//设备编码-资产编码 DynamicObject org = (DynamicObject) realCard.get("org");//管理组织 QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, realCardNumber).and("org.id", QCP.equals, org.get("id"))}; DynamicObject fa_card_real_base = BusinessDataServiceHelper.loadSingle("fa_card_real_base", "id", qFilters);//实物卡片基础资料 @@ -93,6 +102,12 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be } } } + } else if (StringUtil.equals(key, "zcgj_department")){ + //部门 + DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 + if (costDept != null) { + setOrg(costDept); + } } } @@ -100,23 +115,38 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { String propertyName = beforeF7SelectEvent.getProperty().getName(); ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); - List qFilter = new ArrayList<>(); - if (StringUtil.equals(propertyName, "zcgj_realcard") || StringUtil.equals(propertyName, "zcgj_outproject")) { - //设备编码、调出项目 + List qFilters = new ArrayList<>(); + + if (StringUtil.equals(propertyName, "zcgj_realcard")) { + //设备编码 Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织 if (outOrg == null) { this.getView().showErrorNotification("请先填写调出组织!"); beforeF7SelectEvent.setCancel(true); return; } - DynamicObject outOrgDy = (DynamicObject) outOrg; - if (StringUtil.equals(propertyName, "zcgj_realcard")) { - //设备编码 - qFilter.add(new QFilter("org.id", "=", outOrgDy.get("id"))); - } else { - //调出项目 - qFilter.add(new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"))); + + DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 + QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id")); + DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7 + List equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos); + qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds)); + + } else if (StringUtil.equals(propertyName, "zcgj_outproject")) { + // 调出项目 + Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织 + if (outOrg == null) { + this.getView().showErrorNotification("请先填写调出组织!"); + beforeF7SelectEvent.setCancel(true); + return; } + + DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 + QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id")); + DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目 + List projectF7Ids = getIdsFromDynamicObjects(projectF7s); + qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); + } else if (StringUtil.equals(propertyName, "zcgj_inproject")) { //调入项目 Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织 @@ -126,8 +156,72 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be return; } DynamicObject inOrgDy = (DynamicObject) inOrg; - qFilter.add(new QFilter("fiaccountorg.id", "=", inOrgDy.get("id"))); + QFilter filter = new QFilter("fiaccountorg.id", "=", inOrgDy.get("id")); + DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter}); + List projectF7Ids = getIdsFromDynamicObjects(projectF7s); + qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); } - formShowParameter.getListFilterParameter().setQFilters(qFilter); + +// formShowParameter.setHasRight(true); +// formShowParameter.getCustomParams().put("isIgnoreLicense", true); +// formShowParameter.setIsolationOrg(false); + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } + + private List getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) { + List ids = new ArrayList<>(); + if (dynamicObjects != null && dynamicObjects.length > 0) { + for (DynamicObject obj : dynamicObjects) { + ids.add((Long) obj.get("id")); + } + } + return ids; + } + + private void setOrg(DynamicObject costDept) { + DynamicObject orgPattern = costDept.getDynamicObject("orgpattern"); + if (orgPattern == null) { + return; + } + String orgPatternNumber = orgPattern.getString("number"); + if (!orgPatternNumber.equals("Orgform06")) { + //填写的部门的形态不是部门时,直接将部门值赋值给所属组织 + this.getModel().setValue("zcgj_org", costDept);//所属组织 + return; + } + int a = 0; + DynamicObject cost; + DynamicObject viewParent = null; + while (true) { + if (a == 0) { + //第一次进入循环 + cost = costDept; + } else { + QFilter[] qFilters = new QFilter[]{ + new QFilter("number", QCP.equals, viewParent.getString("number")) + }; + cost = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters); + } + DynamicObjectCollection structureCollection = cost.getDynamicObjectCollection("structure");//组织结构分录 + DynamicObject structure = structureCollection.get(0); + viewParent = structure.getDynamicObject("viewparent");//上级组织 + String viewParentNumber = viewParent.getString("number"); + QFilter[] qFilters = new QFilter[]{ + new QFilter("number", QCP.equals, viewParentNumber) + }; + DynamicObject bos_adminOrg = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);//行政组织 + DynamicObject orgPattern1 = bos_adminOrg.getDynamicObject("orgpattern");//形态 + String orgPatternNumber1 = orgPattern1.getString("number"); + if (!orgPatternNumber1.equals("Orgform06")) { + //上级不为不为部门的时候,将现在查询的部门赋值给一级承担部门 + break; + } else { + a++; + } + } + + DynamicObject bos_adminorg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{ + new QFilter("number", QCP.equals, viewParent.getString("number"))}); + this.getModel().setValue("zcgj_org", bos_adminorg);//所属组织 } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/LabourEditPluginExt.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/LabourEditPluginExt.java new file mode 100644 index 0000000..2ebed94 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/LabourEditPluginExt.java @@ -0,0 +1,164 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package zcgj.zcdev.zcdev.pr.plugin.form; + +import java.util.EventObject; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.utils.ObjectUtils; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.events.BeforeDoOperationEventArgs; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.FieldEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.form.operate.FormOperate; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; + +/** + * 劳务班组系统插件二开:去除自动携带身份证号和联系电话逻辑 + */ +public class LabourEditPluginExt extends AbstractBillPlugIn implements BeforeF7SelectListener { + public LabourEditPluginExt() { + } + + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + } + + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit contract = (BasedataEdit) this.getControl("contract"); + contract.addBeforeF7SelectListener(this); + BasedataEdit unitProject = (BasedataEdit) this.getControl("unitproject"); + if (unitProject != null) { + unitProject.addBeforeF7SelectListener(this); + } + + BasedataEdit project = (BasedataEdit) this.getControl("project"); + if (project != null) { + project.addBeforeF7SelectListener(this); + } + + } + + public void afterBindData(EventObject e) { + super.afterBindData(e); + this.teamChanged(); + this.setUnitProject(); + } + + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String propertyName = e.getProperty().getName(); + if (StringUtils.equals(propertyName, "team")) { + this.teamChanged(); + this.getModel().deleteEntryData("entryentity"); + } else { + DynamicObject contract; + if (StringUtils.equals(propertyName, "supplier")) { + contract = (DynamicObject) this.getModel().getValue("supplier"); + if (null != contract) { + this.getModel().setValue("supplierman", contract.getString("linkman")); +// this.getModel().setValue("supplieridcard", contract.getString("tx_register_no"));//二开注释掉的 +// this.getModel().setValue("suppliertel", contract.getString("bizpartner_phone"));//二开注释掉的 + } + } else if (StringUtils.equals(propertyName, "contract")) { + contract = (DynamicObject) this.getModel().getValue("contract"); + if (null != contract && null != contract.getDynamicObject("partb")) { + this.getModel().setValue("supplier", contract.getDynamicObject("partb").getPkValue()); + } + } else if (StringUtils.equals(propertyName, "project")) { + this.getModel().setValue("unitproject", (Object) null); + this.setUnitProject(); + this.getView().updateView("unitproject"); + } + } + + } + + protected void setUnitProject() { + DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + if (project == null) { + this.getView().setEnable(false, new String[]{"unitproject"}); + } else { + boolean editOnUnit = project.getBoolean("editonunit"); + FieldEdit unitProjectEdit = (FieldEdit) this.getView().getControl("unitproject"); + if (editOnUnit) { + this.getView().setEnable(true, new String[]{"unitproject"}); + } else { + unitProjectEdit.setMustInput(false); + this.getView().setEnable(false, new String[]{"unitproject"}); + } + + } + } + + private void teamChanged() { + String team = (String) this.getModel().getValue("team"); + BasedataEdit supplier = (BasedataEdit) this.getControl("supplier"); + BasedataEdit f7pickmaterials = (BasedataEdit) this.getControl("pickmaterials"); + FieldEdit pickmaterialsName = (FieldEdit) this.getControl("pickmaterialsname"); + if (StringUtils.equals(team, "01")) { + supplier.setMustInput(false); + this.getView().setVisible(false, new String[]{"pickmaterialsname"}); + pickmaterialsName.setMustInput(false); + this.getView().setVisible(true, new String[]{"pickmaterials"}); + f7pickmaterials.setMustInput(true); + this.getModel().setValue("supplier", (Object) null); + } else if (StringUtils.equals(team, "02")) { + supplier.setMustInput(true); + this.getView().setVisible(true, new String[]{"pickmaterialsname"}); + pickmaterialsName.setMustInput(true); + this.getView().setVisible(false, new String[]{"pickmaterials"}); + f7pickmaterials.setMustInput(false); + } + + } + + public void beforeDoOperation(BeforeDoOperationEventArgs args) { + super.beforeDoOperation(args); + FormOperate operate = (FormOperate) args.getSource(); + String operateKey = operate.getOperateKey(); + if (StringUtils.equals(operateKey, "save") || StringUtils.equals(operateKey, "submit")) { + String team = (String) this.getModel().getValue("team"); + DynamicObjectCollection entryCollection = this.getModel().getEntryEntity("entryentity"); + if (null != entryCollection && entryCollection.size() > 0) { + for (int i = 0; i < entryCollection.size(); ++i) { + if (StringUtils.equals(team, "01")) { + if (ObjectUtils.isEmpty(((DynamicObject) entryCollection.get(i)).get("pickmaterials"))) { + this.getView().showTipNotification(String.format(ResManager.loadKDString("领料人设置分录,第[%s]行领料人姓名为空。", "LabourEditPlugin_0", "ec-ecma-formplugin", new Object[0]), i + 1)); + args.setCancel(true); + return; + } + } else if (StringUtils.equals(team, "02") && StringUtils.isEmpty(((DynamicObject) entryCollection.get(i)).get("pickmaterialsname").toString().trim())) { + this.getView().showTipNotification(String.format(ResManager.loadKDString("领料人设置分录,第[%s]行领料人姓名为空。", "LabourEditPlugin_0", "ec-ecma-formplugin", new Object[0]), i + 1)); + args.setCancel(true); + return; + } + } + } + } + + } + + public void beforeF7Select(BeforeF7SelectEvent arg0) { + BasedataEdit source = (BasedataEdit) arg0.getSource(); + String key = source.getFieldKey(); + if (StringUtils.equals(key, "contract")) { + ListShowParameter showParameter = (ListShowParameter) arg0.getFormShowParameter(); + QFilter typpeFilter = new QFilter("contracttype.contattr.basictype", "=", "03"); + showParameter.getListFilterParameter().setFilter(typpeFilter); + } else if (StringUtils.equals("unitproject", key)) { + } + + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java index faaa63f..14a7220 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java @@ -11,10 +11,17 @@ import kd.bos.dataentity.resource.ResManager; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.EntityMetadataCache; import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.*; +import kd.bos.form.control.EntryGrid; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.events.ClosedCallBackEvent; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.RefBillEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.form.operate.FormOperate; import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; @@ -28,9 +35,67 @@ import java.util.*; import java.util.stream.Collectors; /** - * 入库单表单插件:入库单点击选择采购申请按钮后弹出对应采购申请分录内容,后通过选择弹出的采购申请分录行赋值给入库单中 + * 入库单表单插件 + * 说明:1:入库单点击选择采购申请按钮后弹出对应采购申请分录内容,后通过选择弹出的采购申请分录行赋值给入库单中 + * 2:采购申请字段内容修改后清空分录 + * 3:采购申请字段过滤逻辑加仓库修改后清空采购申请字段 */ -public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin { +public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + RefBillEdit purchaseApply = getView().getControl("zcgj_purchaseapply");//采购申请 + purchaseApply.addBeforeF7SelectListener(this); + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + if ("zcgj_purchaseapply".equals(key)) { + //采购申请 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + Object oldValue = changeData.getOldValue();//旧值 + if (newValue == null || !newValue.equals(oldValue)) { +// // 消息模板#{x}为超链接占位符,格式如“保存成功,#{0},单据详情,#{1}” +// String tempMsg = "更改采购申请单将自动清单入库单明细,您确定更改吗?"; +// List msglinks = new ArrayList(); +// // 消息框按钮类型 +// MessageBoxOptions options = MessageBoxOptions.OKCancel; +// // 确认提示类型 +// ConfirmTypes confirmTypes = ConfirmTypes.Default; +// // 确认框回调 +// ConfirmCallBackListener callBack = new ConfirmCallBackListener("CALLBACKID_DEMO2", this); +// // 按钮名称 +// Map btnNameMaps = new HashMap(); +// btnNameMaps.put(2, "按钮名称2"); +// btnNameMaps.put(6, "按钮名称6"); +// this.getView().showConfirm(tempMsg, msglinks, options, confirmTypes, callBack, btnNameMaps); + DynamicObjectCollection entryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//入库单分录 + entryCollection.clear(); + this.getView().updateView("entryentity");//刷新分录 + } + } else if ("warehouse".equals(key)) { + //仓库 + this.getModel().setValue("zcgj_purchaseapply", null);//清空采购申请单字段 + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String propertyName = beforeF7SelectEvent.getProperty().getName(); + Object project = this.getModel().getValue("project");//项目 + if (project != null) { + DynamicObject project1 = (DynamicObject) project; + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + List qFilters = new ArrayList<>(); + qFilters.add(new QFilter("project.id", QCP.in, project1.get("id"))); + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } + } + public void beforeDoOperation(BeforeDoOperationEventArgs args) { super.beforeDoOperation(args); FormOperate operate = (FormOperate) args.getSource(); @@ -40,6 +105,42 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement } } + public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { + super.closedCallBack(closedCallBackEvent); + String actionId = closedCallBackEvent.getActionId(); + DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData(); + if (returnDataCollection == null) { + return; + } + if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) { + for (DynamicObject returnData : returnDataCollection) { + int curIndex = this.getModel().createNewEntryRow("entryentity"); + this.getModel().updateCache(); + this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"}); + + long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id + QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield); + DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply", + "purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount", + new QFilter[]{filter});//采购申请单 + + long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码 + BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量 + BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量 + Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率 + Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价 + Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价 + Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注 + this.getModel().setValue("material", material, curIndex);//资源编码 + this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称 + this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量 + this.getModel().setValue("price", price, curIndex);//入库单价 + this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id + this.getModel().setValue("note", remarks, curIndex);//备注 + } + } + } + private void doPurchaseApply() { DynamicObject purchaseApply = (DynamicObject) this.getModel().getValue("zcgj_purchaseapply");//采购申请单 if (purchaseApply == null) { @@ -99,40 +200,4 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement this.getView().showForm(formShowParameter); } } - - public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { - super.closedCallBack(closedCallBackEvent); - String actionId = closedCallBackEvent.getActionId(); - DynamicObjectCollection returnDataCollection = (DynamicObjectCollection) closedCallBackEvent.getReturnData(); - if (returnDataCollection == null) { - return; - } - if ("zcgj_selectpurchaseapply".equals(actionId) && returnDataCollection.size() > 0) { - for (DynamicObject returnData : returnDataCollection) { - int curIndex = this.getModel().createNewEntryRow("entryentity"); - this.getModel().updateCache(); - this.getView().setEnable(false, curIndex, new String[]{"oftaxamount", "notaxamount", "taxamount", "taxprice"}); - - long zcgj_bigintfield = returnData.getLong("zcgj_bigintfield");//采购申请单id - QFilter filter = new QFilter("purchaseentry.id", QCP.equals, zcgj_bigintfield); - DynamicObjectCollection purchaseApply = QueryServiceHelper.query("ecma_purchaseapply", - "purchaseentry,purchaseentry.material,purchaseentry.purchaseqty,purchaseentry.entrytaxrate,purchaseentry.price,purchaseentry.id,purchaseentry.remarks,purchaseentry.zcgj_incount", - new QFilter[]{filter});//采购申请单 - - long material = purchaseApply.get(0).getLong("purchaseentry.material");//采购申请分录-资源编码 - BigDecimal purchaseQty = (BigDecimal) purchaseApply.get(0).get("purchaseentry.purchaseqty");//采购申请分录-采购数量 - BigDecimal zcgj_inCount = (BigDecimal) purchaseApply.get(0).get("purchaseentry.zcgj_incount");//采购申请分录-已入库数量 - Object entryTaxRate = purchaseApply.get(0).get("purchaseentry.entrytaxrate");//采购申请分录-税率 - Object price = purchaseApply.get(0).get("purchaseentry.price");//采购申请分录-预估单价 - Object purchaseEntryId = purchaseApply.get(0).get("purchaseentry.id");//采购申请分录-预估单价 - Object remarks = purchaseApply.get(0).get("purchaseentry.remarks");//采购申请分录-备注 - this.getModel().setValue("material", material, curIndex);//资源编码 - this.getModel().setValue("entrytaxrate", entryTaxRate, curIndex);//税率名称 - this.getModel().setValue("qty", purchaseQty.subtract(zcgj_inCount), curIndex);//数量 - this.getModel().setValue("price", price, curIndex);//入库单价 - this.getModel().setValue("listingid", purchaseEntryId, curIndex);//合同清单id - this.getModel().setValue("note", remarks, curIndex);//备注 - } - } - } } diff --git a/code/zcgj-cosmic-debug/src/main/java/zcgj/cosmic/debug/UatDebugApplication.java b/code/zcgj-cosmic-debug/src/main/java/zcgj/cosmic/debug/UatDebugApplication.java new file mode 100644 index 0000000..c20b7c8 --- /dev/null +++ b/code/zcgj-cosmic-debug/src/main/java/zcgj/cosmic/debug/UatDebugApplication.java @@ -0,0 +1,100 @@ +/** + * This is a kingdee cosmic template project that is automatically generated by the Kingdee cosmic development assistant plugin. + * If there are any issues during the use process, you can provide feedback to the kingdee developer community website. + * Website: https://developer.kingdee.com/developer?productLineId=29 + * Author: liebin.zheng + * Generate Date: 2024-11-22 11:26:47 + */ +package zcgj.cosmic.debug; + +import kd.cosmic.debug.tools.CosmicLauncher; + +/** + * 启动本地应用程序(微服务节点) + */ +public class UatDebugApplication { + + + + public static void main(String[] args) { + +// Thread.currentThread().setContextClassLoader(new KDSecurityClassLoader(Thread.currentThread().getContextClassLoader())); + + CosmicLauncher cosmic = new CosmicLauncher(false); + //开发工作流时开启 + // 关闭轻量环境,启用 redis、rabbitmq + cosmic.setEnableLightWeightDeploy(false); + //debbugTopic 需要设置成每人都不同的 + String debbugTopic = "zzg"; + // 注册为消息队列消费者 + cosmic.setMqConsumerRegister(true, debbugTopic); + + cosmic.setClusterNumber("ierp");//xxx为mc中的集群编码 + cosmic.setTenantNumber("sinoma");//xxx为mc中租户id + //cosmic.setClusterNumber("cosmic"); + //cosmic.setTenantNumber("ierp"); + + //本地环境 + //cosmic.setConfigUrl("192.168.10.210?user=zookeeper&password=123456abc"); + //cosmic.setMcServerUrl("http://192.168.10.210:8090/"); + + //UAT环境 + cosmic.setConfigUrl("172.31.195.243:2181?user=zookeeper&password=Cosmic@6654"); + cosmic.setMcServerUrl("http://111.51.168.122:8090/"); + + +// cosmic.setConfigUrl("127.0.0.1:2181?user=zk&password=xxx"); + //cosmic.set("Schedule.zk.server.ip_port","192.168.10.210:2181?user=zookeeper&password=123456abc"); + //cosmic.setConfigUrl("26.60.218.15?user=zookeeper&password=123456abc"); + +// cosmic.setMcServerUrl("http://127.0.0.1:8090"); + // cosmic.setMcServerUrl("http://26.60.218.15:8090/"); + //http://111.51.168.122:8090/mc + +// cosmic.setFsServerUrl("127.0.0.1", 8100); +// cosmic.setImageServerUrl("127.0.0.1", 8100); + + + + //自定义本地苍穹调试服务的端口 + cosmic.setCosmicWebPort(8881); +// cosmic.setDubboConfig(false, true, true); + cosmic.start(); + //redis 47.101.159.154 + + // debbugTopic 需要设置成每人都不同的 + // String debbugTopic = "zzg"; + // 注册为消息队列消费者 + //cosmic.setMqConsumerRegister(true, debbugTopic); + + +// rabbitmq配置 + /* { + //MQ地址 + String mqHost = "139.224.101.245"; + String mqPort = "5672"; // 默认5672 + //MQ用戶名 + String mqUser = "admin"; + //MQ密碼 + String mqPwd = "admin"; + // MQ Ierp vhost + String mqVhost = "ierp"; + StringBuilder builder = new StringBuilder(); + builder.append("type=rabbitmq").append(System.getProperty("line.separator")) + .append("host=").append(mqHost).append(System.getProperty("line.separator")) + .append("port=").append(mqPort).append(System.getProperty("line.separator")) + .append("user=").append(mqUser).append(System.getProperty("line.separator")) + .append("password=").append(mqPwd).append(System.getProperty("line.separator")) + .append("vhost=").append(mqVhost); + cosmic.set("mq.server", builder.toString()); + } + + // redis + { + String redisUrl = "47.101.159.154:6379"; + cosmic.set("redis.serversForCache", redisUrl); + cosmic.set("redis.serversForSession", redisUrl); + cosmic.set("algo.storage.redis.url", redisUrl); + }*/ + } +} \ No newline at end of file