Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
xuhaihui 2025-08-29 09:30:06 +08:00
commit ab66a158a9
3 changed files with 125 additions and 1019 deletions

View File

@ -82,7 +82,8 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
DynamicObjectCollection entryCpllection = paybill.getDynamicObjectCollection("entry");
BigDecimal allActamt = BigDecimal.ZERO;
for (DynamicObject entry : entryCpllection) {
BigDecimal eActamt = entry.getBigDecimal("e_actamt");//获取实付金额
BigDecimal val = entry.getBigDecimal("e_actamt");
BigDecimal eActamt = val !=null ?val:BigDecimal.ZERO;//获取实付金额
allActamt = allActamt.add(eActamt);
}
@ -92,7 +93,8 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
for (DynamicObject dynamicObject : zcgjFinApprovedAmount) {
String zcgjSetttype = dynamicObject.getString("zcgj_setttype");
if(typeString.equals(zcgjSetttype)){
BigDecimal zcgjAmountRecommended = dynamicObject.getBigDecimal("zcgj_amountpaid");//实际付款金额
BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid");
BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额
BigDecimal amountrecommended = BigDecimal.ZERO;
if(!isPay){
amountrecommended = allActamt;

View File

@ -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<entry.size()-1-i;j++)
{
BigDecimal zcgjInSeq = entry.get(j).getBigDecimal(orderName);
BigDecimal zcgjInSeq1 = entry.get(j+1).getBigDecimal(orderName);
if (zcgjInSeq.compareTo(zcgjInSeq1) > -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,7 +298,12 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
//本月申请金额带入财务部核定金额分录
if(rowIndex == 2){
BigDecimal amt = (BigDecimal) changeData.getNewValue();
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");
@ -272,8 +338,6 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
}
getView().updateView("zcgj_fin_approved_amount");
}
}
}
// 获取某年份的第一天
public static LocalDate getFirstDayOfYear(int year) {