12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package fi.er.opplugin;
- import com.alibaba.druid.util.StringUtils;
- import fi.cas.common.SettlementStatusEnum;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
- import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.operation.SaveServiceHelper;
- import java.math.BigDecimal;
- //预付借款单
- public class PrePayBillOpPlugin extends AbstractOperationServicePlugIn {
- @Override
- public void beginOperationTransaction(BeginOperationTransactionArgs e) {
- //获取预付借款单据信息
- DynamicObject[] dynamicObjects = e.getDataEntities();
- for (int i = 0; i < dynamicObjects.length; i++) {
- if (StringUtils.equals(e.getOperationKey(),"audit")) {
- //当前单头数据包
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- BigDecimal totalUnsettleamount = BigDecimal.ZERO;
- //循环预付借款信息分录
- for (DynamicObject entryentity : info.getDynamicObjectCollection("expenseentryentity")) {
- //取当前循环预付借款信息分录的核定金额
- BigDecimal expeapproveamount = entryentity.getBigDecimal("expeapproveamount");
- //未结算金额=核定金额
- entryentity.set("nckd_unsettleamount_et",expeapproveamount);
- entryentity.set("nckd_settleamount_et",BigDecimal.ZERO);
- totalUnsettleamount = totalUnsettleamount.add(expeapproveamount);
- }
- info.set("nckd_unsettleamount",totalUnsettleamount);
- info.set("nckd_settleamount",BigDecimal.ZERO);
- info.set("nckd_settlestatus", SettlementStatusEnum.未结算.getValue());
- SaveServiceHelper.save(new DynamicObject[]{info});
- } else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
- //当前单头数据包
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- BigDecimal totalUnsettleamount = BigDecimal.ZERO;
- //循环预付借款信息分录
- for (DynamicObject entryentity : info.getDynamicObjectCollection("expenseentryentity")) {
- //反审核,未结算金额置为0
- entryentity.set("nckd_unsettleamount_et",BigDecimal.ZERO);
- }
- info.set("nckd_unsettleamount",BigDecimal.ZERO);
- info.set("nckd_settlestatus", null);
- SaveServiceHelper.save(new DynamicObject[]{info});
- }
- }
- }
- }
|