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 cc4a738..8843911 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 @@ -13,6 +13,7 @@ import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.user.UserServiceHelper; import kd.sdk.plugin.Plugin; import java.math.BigDecimal; @@ -66,10 +67,38 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin //初始化值 initData(org); } + + //获取登录人的主职部门,用户的非兼职部门就是主职部门 + long currentUserId = UserServiceHelper.getCurrentUserId(); + long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + this.getModel().setValue("zcgj_applidepart",mainOrgId); } + + //项目排序 + orderBySeq("zcgj_infundproject_entry","zcgj_in_seq"); + orderBySeq("zcgj_outfundproject_entry","zcgj_out_seq"); + this.getView().setEnable(false, 6, "zcgj_cashamt","zcgj_bankamt","zcgj_businessamt","zcgj_supplyamt","zcgj_otheramt","zcgj_totalamt"); } + //项目排序 + private void orderBySeq(String entityName,String orderName){ + DynamicObjectCollection entry = this.getModel().getEntryEntity(entityName); + //朴实无华的冒泡排序算法,你可以选用性能更好的排序算法 + for (int i = 0; i < entry.size()-1; i++) { + for(int j =0 ;j -1) { + //单据体行下移 + this.getModel().moveEntryRowDown(entityName, j); + } + } + } + this.getView().updateView(entityName); + } + /** * 自动带入 今年最新的 “年初应收余额”和“年初应付余额 */ @@ -102,7 +131,17 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin BigDecimal lastplanrec = BigDecimal.ZERO; for (DynamicObject dynamicObject : indataentry) { DynamicObject newData = inentry.addNew(); - newData.set("zcgj_in_fundproject",dynamicObject.get("zcgj_in_fundproject")); + DynamicObject zcgjInFundproject = dynamicObject.getDynamicObject("zcgj_in_fundproject"); + if(zcgjInFundproject!=null){ + newData.set("zcgj_in_fundproject",zcgjInFundproject); + QFilter id = new QFilter("id", QCP.equals, zcgjInFundproject.getLong("id")); + DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); + if(project!=null){ + BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); + newData.set("zcgj_in_seq",zcgjSeq); + } + } + DynamicObjectCollection collection = new DynamicObjectCollection(); for (DynamicObject zcgjInCustom :dynamicObject.getDynamicObjectCollection("zcgj_in_custom")) { DynamicObject basedataObj = zcgjInCustom.getDynamicObject("fbasedataid"); @@ -123,13 +162,22 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin } this.getView().updateView("zcgj_infundproject_entry"); - DynamicObjectCollection outdataentry = data.getDynamicObjectCollection("zcgj_outfundproject_entry"); DynamicObjectCollection outentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_outfundproject_entry"); outentry.clear(); for (DynamicObject dynamicObject : outdataentry) { DynamicObject newData = outentry.addNew(); - newData.set("zcgj_out_fundproject",dynamicObject.get("zcgj_out_fundproject")); + DynamicObject zcgjOutFundproject = dynamicObject.getDynamicObject("zcgj_out_fundproject"); + if(zcgjOutFundproject!=null){ + newData.set("zcgj_out_fundproject",zcgjOutFundproject); + QFilter id = new QFilter("id", QCP.equals, zcgjOutFundproject.getLong("id")); + DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); + if(project!=null){ + BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); + newData.set("zcgj_out_seq",zcgjSeq); + } + } + DynamicObjectCollection collection = new DynamicObjectCollection(); for (DynamicObject zcgjInCustom : (MulBasedataDynamicObjectCollection) dynamicObject.get("zcgj_out_supplier")) { DynamicObject basedataObj = zcgjInCustom.getDynamicObject("fbasedataid"); @@ -192,7 +240,20 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin }else if(name.equals("zcgj_org")){ DynamicObject org = (DynamicObject) changeData.getNewValue(); initData(org); - }else if(name.equals("zcgj_cashamt") || + }else if(name.equals("zcgj_allplannedbankaccept")){//银行承兑 + BigDecimal amount = (BigDecimal) changeData.getNewValue(); + DynamicObjectCollection zcgjFundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry"); + zcgjFundplyentry.get(2).set("zcgj_bankamt",amount); + this.getView().updateView("zcgj_fundplyentry"); + calfinApprovedAmount(zcgjFundplyentry); + }else if(name.equals("zcgj_allplannedcashpaymen")){//现金 + BigDecimal amount = (BigDecimal) changeData.getNewValue(); + DynamicObjectCollection zcgjFundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry"); + zcgjFundplyentry.get(2).set("zcgj_cashamt",amount); + this.getView().updateView("zcgj_fundplyentry"); + calfinApprovedAmount(zcgjFundplyentry); + } + else if(name.equals("zcgj_cashamt") || name.equals("zcgj_bankamt") || name.equals("zcgj_businessamt") || name.equals("zcgj_supplyamt") || @@ -237,44 +298,47 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin //本月申请金额带入财务部核定金额分录 if(rowIndex == 2){ - BigDecimal amt = (BigDecimal) changeData.getNewValue(); - BigDecimal zcgjCashamt2 = fundplyentry.get(2).getBigDecimal("zcgj_cashamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_cashamt"); - BigDecimal zcgjBankamt2 = fundplyentry.get(2).getBigDecimal("zcgj_bankamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_bankamt"); - BigDecimal zcgjBusinessamt2 = fundplyentry.get(2).getBigDecimal("zcgj_businessamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_businessamt"); - BigDecimal zcgjSupplyamt2 = fundplyentry.get(2).getBigDecimal("zcgj_supplyamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_supplyamt"); - BigDecimal zcgjOtheramt2 = fundplyentry.get(2).getBigDecimal("zcgj_otheramt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_otheramt"); - - DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_fin_approved_amount"); - for (DynamicObject dynamicObject : zcgjFinApprovedAmount) { - String zcgjSetttype = dynamicObject.getString("zcgj_setttype"); - //{"XJ","YHCD","SYCD","GYL","QTJRCP"}; - if("XJ".equals(zcgjSetttype)){ - dynamicObject.set("zcgj_applymonthamt",zcgjCashamt2); - dynamicObject.set("zcgj_hdamount",zcgjCashamt2); - dynamicObject.set("zcgj_amount_remaining",zcgjCashamt2); - }else if("YHCD".equals(zcgjSetttype)){ - dynamicObject.set("zcgj_applymonthamt",zcgjBankamt2); - dynamicObject.set("zcgj_hdamount",zcgjBankamt2); - dynamicObject.set("zcgj_amount_remaining",zcgjBankamt2); - }else if("SYCD".equals(zcgjSetttype)){ - dynamicObject.set("zcgj_applymonthamt",zcgjBusinessamt2); - dynamicObject.set("zcgj_hdamount",zcgjBusinessamt2); - dynamicObject.set("zcgj_amount_remaining",zcgjBusinessamt2); - }else if("GYL".equals(zcgjSetttype)){ - dynamicObject.set("zcgj_applymonthamt",zcgjSupplyamt2); - dynamicObject.set("zcgj_hdamount",zcgjSupplyamt2); - dynamicObject.set("zcgj_amount_remaining",zcgjSupplyamt2); - }else if("QTJRCP".equals(zcgjSetttype)){ - dynamicObject.set("zcgj_applymonthamt",zcgjOtheramt2); - dynamicObject.set("zcgj_hdamount",zcgjOtheramt2); - dynamicObject.set("zcgj_amount_remaining",zcgjOtheramt2); - } - } - getView().updateView("zcgj_fin_approved_amount"); + calfinApprovedAmount(fundplyentry); } } } + public void calfinApprovedAmount(DynamicObjectCollection fundplyentry){ + BigDecimal zcgjCashamt2 = fundplyentry.get(2).getBigDecimal("zcgj_cashamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_cashamt"); + BigDecimal zcgjBankamt2 = fundplyentry.get(2).getBigDecimal("zcgj_bankamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_bankamt"); + BigDecimal zcgjBusinessamt2 = fundplyentry.get(2).getBigDecimal("zcgj_businessamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_businessamt"); + BigDecimal zcgjSupplyamt2 = fundplyentry.get(2).getBigDecimal("zcgj_supplyamt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_supplyamt"); + BigDecimal zcgjOtheramt2 = fundplyentry.get(2).getBigDecimal("zcgj_otheramt")== null?BigDecimal.ZERO:fundplyentry.get(2).getBigDecimal("zcgj_otheramt"); + + DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_fin_approved_amount"); + for (DynamicObject dynamicObject : zcgjFinApprovedAmount) { + String zcgjSetttype = dynamicObject.getString("zcgj_setttype"); + //{"XJ","YHCD","SYCD","GYL","QTJRCP"}; + if("XJ".equals(zcgjSetttype)){ + dynamicObject.set("zcgj_applymonthamt",zcgjCashamt2); + dynamicObject.set("zcgj_hdamount",zcgjCashamt2); + dynamicObject.set("zcgj_amount_remaining",zcgjCashamt2); + }else if("YHCD".equals(zcgjSetttype)){ + dynamicObject.set("zcgj_applymonthamt",zcgjBankamt2); + dynamicObject.set("zcgj_hdamount",zcgjBankamt2); + dynamicObject.set("zcgj_amount_remaining",zcgjBankamt2); + }else if("SYCD".equals(zcgjSetttype)){ + dynamicObject.set("zcgj_applymonthamt",zcgjBusinessamt2); + dynamicObject.set("zcgj_hdamount",zcgjBusinessamt2); + dynamicObject.set("zcgj_amount_remaining",zcgjBusinessamt2); + }else if("GYL".equals(zcgjSetttype)){ + dynamicObject.set("zcgj_applymonthamt",zcgjSupplyamt2); + dynamicObject.set("zcgj_hdamount",zcgjSupplyamt2); + dynamicObject.set("zcgj_amount_remaining",zcgjSupplyamt2); + }else if("QTJRCP".equals(zcgjSetttype)){ + dynamicObject.set("zcgj_applymonthamt",zcgjOtheramt2); + dynamicObject.set("zcgj_hdamount",zcgjOtheramt2); + dynamicObject.set("zcgj_amount_remaining",zcgjOtheramt2); + } + } + getView().updateView("zcgj_fin_approved_amount"); + } + // 获取某年份的第一天 public static LocalDate getFirstDayOfYear(int year) { return LocalDate.of(year, 1, 1);