diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java index 69e3ba6..697d707 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/common/AssistbalanceAutoData.java @@ -133,6 +133,7 @@ public class AssistbalanceAutoData { DynamicObject assistbalance =BusinessDataServiceHelper.newDynamicObject("zcgj_rpt_assistbalance"); assistbalance.set("zcgj_debitlocal", record.getDebitlocal()); + assistbalance.set("zcgj_beginlocal", record.getBeginlocal()); assistbalance.set("zcgj_creditlocal", record.getCreditlocal()); assistbalance.set("zcgj_yeardebitfor", record.getYeardebitfor()); assistbalance.set("zcgj_yearcreditfor", record.getYearcreditfor()); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/CasPaybillToEcFundPlanApplyOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/CasPaybillToEcFundPlanApplyOp.java index 4dcb4e1..d2b6023 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/CasPaybillToEcFundPlanApplyOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/CasPaybillToEcFundPlanApplyOp.java @@ -101,6 +101,17 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI allActamt = allActamt.add(zcgjAmountRecommended); dynamicObject.set("zcgj_amountpaid", allActamt);//实付金额 dynamicObject.set("zcgj_amount_inpayment",amountrecommended);// + + //zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid + //剩余待拨付金额 = 财务核定金额 - 付款处理中金额 - 实付金额 + BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount"); + if(hdamount !=null && isPay){ + BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt); + dynamicObject.set("zcgj_amount_remaining",subtract); + }else if(hdamount != null){ + BigDecimal subtract = hdamount.add(amountrecommended).subtract(allActamt);//实付金额已经成为相反数 + dynamicObject.set("zcgj_amount_remaining",subtract); + } } } updateData.add(fundingplanapply); 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 78aeade..d043690 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 @@ -124,7 +124,8 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi Date modifytime = realcard.getDate("modifytime");//修改时间 DynamicObject auditor = realcard.getDynamicObject("auditor");//审核人 Date auditdate = realcard.getDate("auditdate");//审核时间 - + BigDecimal assetamount = realcard.getBigDecimal("assetamount");//资产数量 + String remark = realcard.getString("remark");//备注 DynamicObject equipmentcard = ORM.create().newDynamicObject("eceq_equipment_card"); Date date=new Date(); long timestamp=date.getTime(); //时间戳 @@ -174,7 +175,8 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//成本中心 equipmentcard.set("zcgj_assetcat",assetcat);//资产类别 - + equipmentcard.set("zcgj_assetamount",assetamount);//数量 + equipmentcard.set("zcgj_remark",remark);//备注 BigDecimal finOriginalval = BigDecimal.ZERO; BigDecimal fin_preusingamount = BigDecimal.ZERO; BigDecimal fin_depredamount = BigDecimal.ZERO; @@ -226,12 +228,13 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi eceq_equipment.set("zcgj_depredamount",fin_depredamount); eceq_equipment.set("zcgj_preresidualval",fin_preresidualval); eceq_equipment.set("zcgj_preusingamount",fin_preusingamount); - eceq_equipment.set("unitprice",finOriginalval); + eceq_equipment.set("zcgj_unitprice",finOriginalval); DynamicObjectCollection entrys = eceq_equipment.getDynamicObjectCollection("zcgj_entryentity"); SaveServiceHelper.save(new DynamicObject[]{eceq_equipment}); } System.out.println("总报错信息为:"+operationResultErrorInfos); } + this.getView().showMessage("同步成功!"); } } 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 new file mode 100644 index 0000000..6ceaaef --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java @@ -0,0 +1,167 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.isc.util.misc.StringUtil; +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:调出调入项目带出调出调入负责人;4:自动带出所属组织 + */ +public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit realCard = this.getControl("zcgj_realcard"); //设备编码 + realCard.addBeforeF7SelectListener(this); + BasedataEdit outProject = this.getControl("zcgj_outproject"); //调出项目 + outProject.addBeforeF7SelectListener(this); + BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目 + inProject.addBeforeF7SelectListener(this); + } + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + long currentUserId = UserServiceHelper.getCurrentUserId(); + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + this.getModel().setValue("zcgj_org", mainOrgId);//所属组织 + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + if (StringUtil.equals(key, "zcgj_realcard")) { + //设备编码 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + int rowIndex = changeData.getRowIndex(); + DynamicObject realCard = (DynamicObject) changeData.getNewValue();//新值 + if (realCard != null) { + 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);//实物卡片基础资料 + this.getModel().setValue("zcgj_realcardsw", fa_card_real_base, rowIndex);//资产编码 + } else { + this.getModel().setValue("zcgj_realcardsw", null, rowIndex);//资产编码 + } + } else if (StringUtil.equals(key, "zcgj_outorg") || StringUtil.equals(key, "zcgj_inorg")) { + //调出组织,调入组织 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + Object oldValue = changeData.getOldValue();//旧值 + if (newValue == null || !newValue.equals(oldValue)) { + if (StringUtil.equals(key, "zcgj_outorg")) { + //调出组织 + DynamicObjectCollection dispatchEntryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_dispatchentry");//调出资产详情分录 + dispatchEntryCollection.clear(); + this.getView().updateView("zcgj_dispatchentry");//刷新分录 + this.getModel().setValue("zcgj_outproject", null);//清空调出项目 + } else { + //调入组织 + this.getModel().setValue("zcgj_inproject", null);//清空调入项目 + } + } + } else if (StringUtil.equals(key, "zcgj_outproject") || StringUtil.equals(key, "zcgj_inproject")) { + //调出项目,调入项目 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + if (newValue != null) { + DynamicObject newValueDy = (DynamicObject) newValue; + QFilter[] qFilters = new QFilter[]{new QFilter("billno", QCP.equals, newValueDy.getString("number"))}; + DynamicObject ec_project = BusinessDataServiceHelper.loadSingle("ec_project", "id,zcgj_pm", qFilters);//项目 + if (ec_project != null) { + if (StringUtil.equals(key, "zcgj_outproject")) { + //调出项目 + this.getModel().setValue("zcgj_outuser", ec_project.get("zcgj_pm"));//调出负责人 + } else { + this.getModel().setValue("zcgj_inuser", ec_project.get("zcgj_pm"));//调出负责人 + } + } + } + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String propertyName = beforeF7SelectEvent.getProperty().getName(); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + 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;//调出组织 + 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");//调入组织 + if (inOrg == null) { + this.getView().showErrorNotification("请先填写调入组织!"); + beforeF7SelectEvent.setCancel(true); + return; + } + DynamicObject inOrgDy = (DynamicObject) inOrg; + 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(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; + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java index 7fc045e..bc775ee 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java @@ -41,14 +41,16 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin //设置期间 DynamicObject org = (DynamicObject) this.getModel().getValue("zcgj_org"); if(org!=null){ - //查询组织下对应的当前期间数据 + /*//查询组织下对应的当前期间数据 DynamicObject[] orgByCurperiod = BusinessDataServiceHelper.load("gl_accountbook", "org,curperiod", new QFilter[]{new QFilter("enable", QCP.equals, Boolean.TRUE). and("status", QCP.equals, "C").and("org.id", QCP.equals, org.getLong("id"))}); if(orgByCurperiod!=null && orgByCurperiod.length>0){ this.getModel().setValue("zcgj_period",orgByCurperiod[0].getDynamicObject("curperiod")); - } + }*/ + //设置期间 + carryCurrentPeriodAndDate(); //初始化值 initData(org); } @@ -156,4 +158,19 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin return LocalDate.of(year, 12, 31); } + + protected void carryCurrentPeriodAndDate() { + Calendar cal = Calendar.getInstance(); + int year = cal.get(1); + int month = cal.get(2) + 1; + QFilter yearFilter = new QFilter("periodyear", "=", year); + QFilter monthFilter = new QFilter("periodnumber", "=", month); + DynamicObject bdPeriod = BusinessDataServiceHelper.loadSingle("bd_period", "id,name,begindate,enddate", new QFilter[]{yearFilter, monthFilter}); + if (bdPeriod != null) { + this.getModel().setValue("zcgj_period", bdPeriod.getPkValue()); + //this.getModel().setValue("begindate", bdPeriod.get("begindate")); + // this.getModel().setValue("enddate", bdPeriod.get("enddate")); + } + + } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java index 77c8bcb..e2fb71f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java @@ -49,7 +49,6 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin outFinaceconfirm.set("zcgj_invoice_org",outContractSettle.getDynamicObject("project").getDynamicObject("projectorg")); outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); outFinaceconfirm.set("billstatus","A"); - outFinaceconfirm.set("zcgj_is_reversabillid",true); outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator")); DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java index f89bd7e..da6f479 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java @@ -67,7 +67,8 @@ public class EquipmentCardTaskPlugin extends AbstractTask { QFilter qFilter3 = new QFilter("bizstatus", QCP.not_equals, "DELETE"); // QFilter qFilter4 = new QFilter("billstatus", QCP.equals, "C"); 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,finentry.fin_originalval,finentry.fin_preresidualval,finentry.fin_depredamount,finentry.fin_preusingamount,finentry.fin_accumdepre,finentry.fin_networth", new QFilter[]{qFilter,qFilter2,qFilter3}); + "assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor,finentry.fin_originalval,finentry.fin_preresidualval," + + "finentry.fin_depredamount,finentry.fin_preusingamount,finentry.fin_accumdepre,finentry.fin_networth,remark,assetamount", new QFilter[]{qFilter,qFilter2,qFilter3}); log.info("同步的实物数量有"+realcards.length); String operationResultErrorInfos = null; for (DynamicObject realcard : realcards) { @@ -86,6 +87,9 @@ public class EquipmentCardTaskPlugin extends AbstractTask { DynamicObject storeplace = realcard.getDynamicObject("storeplace");//存放地点 DynamicObject headusedept = realcard.getDynamicObject("headusedept");//使用部门 DynamicObject zcgj_costcenter = realcard.getDynamicObject("zcgj_costcenter");//成本中心 + BigDecimal assetamount = realcard.getBigDecimal("assetamount");//资产数量 + String remark = realcard.getString("remark");//备注 + DynamicObjectCollection finentrys = realcard.getDynamicObjectCollection("finentry");//财务卡片分录 String fulladdress = null; if(storeplace!=null){ @@ -148,6 +152,8 @@ public class EquipmentCardTaskPlugin extends AbstractTask { equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//成本中心 equipmentcard.set("zcgj_assetcat",assetcat);//资产类别 + equipmentcard.set("zcgj_assetamount",assetamount);//数量 + equipmentcard.set("zcgj_remark",remark);//备注 BigDecimal finOriginalval = BigDecimal.ZERO; BigDecimal fin_preusingamount = BigDecimal.ZERO; BigDecimal fin_depredamount = BigDecimal.ZERO; @@ -199,7 +205,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask { eceq_equipment.set("zcgj_depredamount",fin_depredamount); eceq_equipment.set("zcgj_preresidualval",fin_preresidualval); eceq_equipment.set("zcgj_preusingamount",fin_preusingamount); - eceq_equipment.set("unitprice",finOriginalval); + eceq_equipment.set("zcgj_unitprice",finOriginalval); DynamicObjectCollection entrys = eceq_equipment.getDynamicObjectCollection("zcgj_entryentity"); QFilter qf = new QFilter("realcard.number", QCP.equals, number); // if (entrys.size() > 0) {//若分录行数大于0 则取上月的