123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- package fi.em.formPlugin;
- 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.exception.KDBizException;
- import kd.bos.form.events.AfterDoOperationEventArgs;
- import kd.bos.list.plugin.AbstractListPlugin;
- import kd.sdk.plugin.Plugin;
- import java.math.BigDecimal;
- public class TravelCollectionEntryAmtFromPlugin extends AbstractListPlugin implements Plugin {
- @Override
- public void afterDoOperation(AfterDoOperationEventArgs e) {
- String operateKey = e.getOperateKey();
- if ("deleteentryyufu".equals(e.getOperateKey())) {
- DynamicObjectCollection nckdClearloanentry = this.getModel().getEntryEntity("nckd_clearloanentry");
- if(nckdClearloanentry.isEmpty()){
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);//总报销金额
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);//收款第一行
- if(accountentry.size()==1){
- bigDecimal=bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount",bigDecimal,0);
- }else{
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for(int i=0;i<accountentry.size();i++){
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if(i>0){
- bigDecimal3=bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1=bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- if(con1.compareTo(BigDecimal.ZERO) > 0){
- this.getModel().setValue("nckd_orireceiveamount",con1,0);
- }else {
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- }
- }
- }else {
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection nckdClearloanentrys = this.getModel().getEntryEntity("nckd_clearloanentry");
- for(int i=0;i<nckdClearloanentrys.size();i++){
- DynamicObject dynamicObject = nckdClearloanentrys.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObject.getBigDecimal("nckd_unexporiusedamount");
- bigDecimal1=bigDecimal1.add(nckdUnexporiusedamount);
- }
- if(bigDecimal1.compareTo(bigDecimal) == 1){
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- } else if (bigDecimal1.compareTo(bigDecimal) == 0) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- }else {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);
- if(accountentry.size()==1){
- bigDecimal=bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount",bigDecimal,0);
- }else{
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for(int i=0;i<accountentry.size();i++){
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if(i>0){
- bigDecimal3=bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1=bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- con1=con1.subtract(bigDecimal1);
- if(con1.compareTo(BigDecimal.ZERO) > 0){
- this.getModel().setValue("nckd_orireceiveamount",con1,0);
- }else {
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- }
- }
- }
- }
- }
- }
- @Override
- public void propertyChanged(PropertyChangedArgs e) {
- super.beforePropertyChanged(e);
- String name = e.getProperty().getName();//获取字段标识
- if ("tripstdshow".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();//获取值
- int rs =0;
- for (ChangeData changeData : changeSet) {
- rs++;
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection nckdClearloanentry = this.getModel().getEntryEntity("nckd_clearloanentry");
- for(int i=0;i<nckdClearloanentry.size();i++){
- DynamicObject dynamicObject = nckdClearloanentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObject.getBigDecimal("nckd_unexporiusedamount");
- bigDecimal1=bigDecimal1.add(nckdUnexporiusedamount);
- }
- if(bigDecimal1.compareTo(bigDecimal) == 1){
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if(accountentry==null){
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- } else if (bigDecimal1.compareTo(bigDecimal) == 0) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if(accountentry==null){
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- }else {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if(accountentry==null){
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if(dynamicObject!=null){
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);
- if(accountentry.size()==1){
- bigDecimal=bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount",bigDecimal,0);
- }else{
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for(int i=0;i<accountentry.size();i++){
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if(i>0){
- bigDecimal3=bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1=bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- con1=con1.subtract(bigDecimal1);
- if(con1.compareTo(BigDecimal.ZERO) > 0){
- this.getModel().setValue("nckd_orireceiveamount",con1,0);
- }else {
- this.getModel().setValue("nckd_orireceiveamount",new BigDecimal(0),0);
- }
- }
- }
- }
- }
- }else if ("nckd_unexporiusedamount".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();//获取值
- int rs =0;
- for (ChangeData changeData : changeSet) {
- rs++;
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection nckdClearloanentry = this.getModel().getEntryEntity("nckd_clearloanentry");
- if (nckdClearloanentry.isEmpty()) {
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- for (int i = 0; i < nckdClearloanentry.size(); i++) {
- DynamicObject dynamicObject = nckdClearloanentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObject.getBigDecimal("nckd_unexporiusedamount");
- bigDecimal1 = bigDecimal1.add(nckdUnexporiusedamount);
- }
- if (bigDecimal1.compareTo(bigDecimal) == 1) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else if (bigDecimal1.compareTo(bigDecimal) == 0) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);
- if (accountentry.size() == 1) {
- bigDecimal = bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for (int i = 0; i < accountentry.size(); i++) {
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if (i > 0) {
- bigDecimal3 = bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1 = bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- con1 = con1.subtract(bigDecimal1);
- if (con1.compareTo(BigDecimal.ZERO) > 0) {
- this.getModel().setValue("nckd_orireceiveamount", con1, 0);
- } else {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- }
- }
- }
- }
- }
- }else if ("orireceiveamount".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();//获取值
- int rs = 0;
- for (ChangeData changeData : changeSet) {
- rs++;
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection nckdClearloanentry = this.getModel().getEntryEntity("nckd_clearloanentry");
- if (nckdClearloanentry.isEmpty()) {
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- for (int i = 0; i < nckdClearloanentry.size(); i++) {
- DynamicObject dynamicObject = nckdClearloanentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObject.getBigDecimal("nckd_unexporiusedamount");
- bigDecimal1 = bigDecimal1.add(nckdUnexporiusedamount);
- }
- if (bigDecimal1.compareTo(bigDecimal) == 1) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else if (bigDecimal1.compareTo(bigDecimal) == 0) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);
- if (accountentry.size() == 1) {
- bigDecimal = bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for (int i = 0; i < accountentry.size(); i++) {
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if (i > 0) {
- bigDecimal3 = bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1 = bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- con1 = con1.subtract(bigDecimal1);
- if (con1.compareTo(BigDecimal.ZERO) > 0) {
- this.getModel().setValue("nckd_orireceiveamount", con1, 0);
- } else {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- }
- }
- }
- }
- }
- } else if ("approveamount".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();//获取值
- int rs = 0;
- for (ChangeData changeData : changeSet) {
- rs++;
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- String nckdAmountfield4 = this.getModel().getValue("approveamount").toString();
- BigDecimal bigDecimal = new BigDecimal(nckdAmountfield4);
- BigDecimal bigDecimal1 = new BigDecimal(0);
- DynamicObjectCollection nckdClearloanentry = this.getModel().getEntryEntity("nckd_clearloanentry");
- if (nckdClearloanentry.isEmpty()) {
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- for (int i = 0; i < nckdClearloanentry.size(); i++) {
- DynamicObject dynamicObject = nckdClearloanentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObject.getBigDecimal("nckd_unexporiusedamount");
- bigDecimal1 = bigDecimal1.add(nckdUnexporiusedamount);
- }
- if (bigDecimal1.compareTo(bigDecimal) == 1) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else if (bigDecimal1.compareTo(bigDecimal) == 0) {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- } else {
- DynamicObjectCollection accountentry = this.getModel().getEntryEntity("accountentry");
- if (accountentry == null) {
- throw new KDBizException("收款明细分录为空,请维护!");
- }
- DynamicObject dynamicObject = accountentry.get(0);
- if (dynamicObject != null) {
- String orireceiveamount = this.getModel().getValue("nckd_orireceiveamount", 0).toString();
- BigDecimal bigDecimal2 = new BigDecimal(orireceiveamount);
- if (accountentry.size() == 1) {
- bigDecimal = bigDecimal.subtract(bigDecimal1);
- this.getModel().setValue("nckd_orireceiveamount", bigDecimal, 0);
- } else {
- BigDecimal bigDecimal3 = new BigDecimal(0);
- for (int i = 0; i < accountentry.size(); i++) {
- DynamicObject dynamicObjects = accountentry.get(i);
- BigDecimal nckdUnexporiusedamount = dynamicObjects.getBigDecimal("nckd_orireceiveamount");
- if (i > 0) {
- bigDecimal3 = bigDecimal3.add(nckdUnexporiusedamount);
- }
- }
- BigDecimal con1 = bigDecimal.subtract(bigDecimal3);//收款信息第一行的金额
- con1 = con1.subtract(bigDecimal1);
- if (con1.compareTo(BigDecimal.ZERO) > 0) {
- this.getModel().setValue("nckd_orireceiveamount", con1, 0);
- } else {
- this.getModel().setValue("nckd_orireceiveamount", new BigDecimal(0), 0);
- }
- }
- }
- }
- }
- }
- }
- }
- }
|