123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- package fi.em.formPlugin;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- 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.CloseCallBack;
- import kd.bos.form.FormShowParameter;
- import kd.bos.form.ShowType;
- import kd.bos.form.events.AfterDoOperationEventArgs;
- import kd.bos.form.events.ClosedCallBackEvent;
- import kd.bos.list.ListShowParameter;
- import kd.bos.list.plugin.AbstractListPlugin;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.sdk.plugin.Plugin;
- import org.apache.commons.lang3.StringUtils;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- public class BusinessProcessingEditPlugin extends AbstractListPlugin implements Plugin {
- public static String btn_cysgzmx = "cysgzmx";
- public static String btn_cyfgzmx = "cyfgzmx";
- public static String btn_pzht = "pzht";
- public static String btn_skskzh = "skskzh";
- public static String btn_fkfkzh = "fkfkzh";
- public static String nckd_agentparameterf7 = "nckd_ywclskf";
- private static String bos_org = "bos_org";
- @Override
- public void afterDoOperation(AfterDoOperationEventArgs e) {
- String operateKey = e.getOperateKey();
- if (btn_cysgzmx.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("nckd_payeenamev");
- Object nckd_orgv = this.getModel().getValue("nckd_orgv");
- DynamicObject dynamicObject = (DynamicObject) value;
- DynamicObject orgv = (DynamicObject) nckd_orgv;
- if (dynamicObject == null) {
- throw new KDBizException("收款信息付款人为空!");
- }
- if (orgv == null) {
- throw new KDBizException("收款信息收款人为空!");
- }
- String payeenamev = dynamicObject.getString("name");
- String orgnumber = orgv.getString("number");
- nckd_agentparameterf7 = "nckd_cysgzmxf7";
- showParameter(nckd_agentparameterf7, btn_cysgzmx, payeenamev, btn_cysgzmx, orgnumber);
- } else if (btn_cyfgzmx.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("nckd_payeenamevs");
- Object nckd_orgvs = this.getModel().getValue("nckd_orgvs");
- DynamicObject dynamicObject = (DynamicObject) value;
- DynamicObject orgvs = (DynamicObject) nckd_orgvs;
- if (dynamicObject == null) {
- throw new KDBizException("付款信息收款人为空!");
- }
- if (orgvs == null) {
- throw new KDBizException("付款信息付款人为空!");
- }
- String payeenamev = dynamicObject.getString("number");
- String orgnumber = orgvs.getString("number");
- nckd_agentparameterf7 = "nckd_cyfgzmxf7";
- showParameter(nckd_agentparameterf7, btn_cyfgzmx, payeenamev, btn_cyfgzmx, orgnumber);
- } else if (btn_pzht.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("nckd_orgv");
- Object nckd_payeenamevs = this.getModel().getValue("nckd_payeenamev");
- DynamicObject dynamicObject = (DynamicObject) value;
- DynamicObject payeenamevs = (DynamicObject) nckd_payeenamevs;
- if (dynamicObject == null) {
- throw new KDBizException("收款信息收款人为空!");
- }
- if (payeenamevs == null) {
- throw new KDBizException("收款信息付款人为空!");
- }
- String payeenamev = dynamicObject.getString("number");
- String nckdpayeenamevs = payeenamevs.getString("number");
- nckd_agentparameterf7 = "nckd_pzhtf7";
- showParameter(nckd_agentparameterf7, btn_pzht, nckdpayeenamevs, btn_pzht, payeenamev);
- } else if (btn_skskzh.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("nckd_payeenamev");
- DynamicObject dynamicObject = (DynamicObject) value;
- if (dynamicObject == null) {
- throw new KDBizException("收款信息付款人为空!");
- }
- String payeenamev = dynamicObject.getString("number");
- nckd_agentparameterf7 = "nckd_supplierbank";
- showParameter(nckd_agentparameterf7, btn_skskzh, payeenamev, btn_skskzh, "");
- } else if (btn_fkfkzh.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("nckd_payeenamevs");
- DynamicObject dynamicObject = (DynamicObject) value;
- if (dynamicObject == null) {
- throw new KDBizException("付款信息收款人为空!");
- }
- String payeenamev = dynamicObject.getString("number");
- nckd_agentparameterf7 = "nckd_supplierbank";
- showParameter(nckd_agentparameterf7, btn_fkfkzh, payeenamev, btn_fkfkzh, "");
- }
- }
- public void showParameter(String formId, String actionId, String payeenamev, String controls, String orgnumber) {
-
- FormShowParameter ShowParameter = new FormShowParameter();
-
- ShowParameter.setCustomParam("payeenamev", payeenamev);
- ShowParameter.setCustomParam("controls", controls);
- ShowParameter.setCustomParam("billtype", formId);
- ShowParameter.setCustomParam("orgnumber", orgnumber);
-
- ShowParameter.setFormId(formId);
-
- if ("cysgzmx".equals(actionId)) {
- ShowParameter.setCaption("冲应收挂账");
- } else if ("cyfgzmx".equals(actionId)) {
- ShowParameter.setCaption("冲应付挂账");
- }
-
-
- ShowParameter.setCloseCallBack(new CloseCallBack(this, actionId));
-
- ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
-
- this.getView().showForm(ShowParameter);
- }
- @Override
- public void closedCallBack(ClosedCallBackEvent e) {
- super.closedCallBack(e);
- if (null != e.getReturnData()) {
- String billtype = "";
- String controls = "";
-
- HashMap<String, String> returnData = (HashMap<String, String>) e.getReturnData();
- String reJaStr = returnData.get("reJaStr");
-
- if (StringUtils.isNotBlank(reJaStr)) {
- JSONArray reJa = JSONArray.parseArray(reJaStr);
- JSONObject reJos = reJa.getJSONObject(0);
- billtype = reJos.getString("billtype");
- controls = reJos.getString("controls");
-
- if (btn_cysgzmx.equals(controls)) {
- this.getModel().deleteEntryData("nckd_entryentity1");
- } else if (btn_cyfgzmx.equals(controls)) {
- this.getModel().deleteEntryData("nckd_entryentity2");
- } else if (btn_pzht.equals(controls)) {
- this.getModel().deleteEntryData("nckd_entryentity3");
- }
-
- for (int i = 0; i < reJa.size(); i++) {
-
- JSONObject reJo = reJa.getJSONObject(i);
- billtype = reJo.getString("billtype");
- controls = reJo.getString("controls");
- if (btn_cysgzmx.equals(controls)) {
- String billno = reJo.getString("nckd_cysnumber");
- String cysfyxm = reJo.getString("nckd_cysfyxm");
- String settleorg = reJo.getString("settleorg");
- String expectdate = reJo.getString("expectdate");
- QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals, cysfyxm);
- DynamicObject nckd_cysfyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id", new QFilter[]{nckd_cysfyxmFilter});
- Date bizdate = reJo.getDate("nckd_cysdata");
- BigDecimal settleamount = reJo.getBigDecimal("nckd_cysgzbalance");
-
- int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity1");
-
- this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, settleorg);
- nckd_orgamountFilter.and("enable", QCP.equals, "1");
- DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
- this.getModel().setValue("nckd_cysorg", nckd_org, rowIndex);
- Object nckd_costdept = this.getModel().getValue("nckd_costdept");
- DynamicObject costdept = (DynamicObject) nckd_costdept;
- this.getModel().setValue("nckd_cyssection", costdept, rowIndex);
- Object value = this.getModel().getValue("nckd_payeenamev");
- DynamicObject dynamicObject = (DynamicObject) value;
- this.getModel().setValue("nckd_cyswldw", dynamicObject, rowIndex);
- this.getModel().setValue("nckd_datefield", expectdate, rowIndex);
- this.getModel().setValue("nckd_cysdata", bizdate, rowIndex);
- this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
- this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
- if (cysfyxm != null && !cysfyxm.isEmpty()) {
- this.getModel().setValue("nckd_cysfyxm", nckd_cysfyxm, rowIndex);
- }
- String cysgzbalance = this.getModel().getValue("nckd_ysgzjehj").toString();
- BigDecimal bigDecimal = new BigDecimal(cysgzbalance);
- this.getModel().setValue("nckd_ysgzjehj", bigDecimal.add(settleamount), 0);
- } else if (btn_pzht.equals(controls)) {
-
- String pzhtorg = reJo.getString("nckd_pzhtorg");
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, pzhtorg);
- nckd_orgamountFilter.and("enable", QCP.equals, "1");
- DynamicObject nckd_pzhtorg = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
-
- String pzhthth = reJo.getString("nckd_pzhthth");
-
- String pzhtname = reJo.getString("nckd_pzhtname");
-
- String pzhtczf = reJo.getString("nckd_pzhtczf");
- QFilter nckd_pzhtczfFilter = new QFilter("number", QCP.equals, pzhtczf);
- DynamicObject nckd_pzhtczf = BusinessDataServiceHelper.loadSingle("bd_supplier", "id", new QFilter[]{nckd_pzhtczfFilter});
-
- String pzhtzcname = reJo.getString("nckd_pzhtzcname");
-
- Date bizdate = reJo.getDate("nckd_ppzhtdata");
-
- BigDecimal pzhtskbalance = reJo.getBigDecimal("nckd_pzhtskbalance");
-
- BigDecimal pzhtcxbalance = reJo.getBigDecimal("nckd_pzhtcxbalance");
-
- int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity3");
-
- this.getModel().setValue("nckd_pzhtorg", nckd_pzhtorg, rowIndex);
- this.getModel().setValue("nckd_pzhthth", pzhthth, rowIndex);
- this.getModel().setValue("nckd_pzhtname", pzhtname, rowIndex);
- this.getModel().setValue("nckd_pzhtczf", nckd_pzhtczf, rowIndex);
- this.getModel().setValue("nckd_pzhtzcname", pzhtzcname, rowIndex);
- this.getModel().setValue("nckd_ppzhtdata", bizdate, rowIndex);
- this.getModel().setValue("nckd_pzhtskbalance", pzhtskbalance, rowIndex);
- this.getModel().setValue("nckd_pzhtcxbalance", pzhtcxbalance, rowIndex);
- } else if (btn_cyfgzmx.equals(controls)) {
- String billno = reJo.getString("nckd_cyfnumber");
- Date bizdate = reJo.getDate("nckd_cyfdata");
- String nckdCyffyxm = reJo.getString("nckd_cyffyxm");
- String settleorg = reJo.getString("settleorg");
- String duedate = reJo.getString("duedate");
- Long id = reJo.getLong("id");
- QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals, nckdCyffyxm);
- DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id", new QFilter[]{nckd_cysfyxmFilter});
- BigDecimal settleamount = reJo.getBigDecimal("nckd_cyfgzbalance");
-
- int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity2");
-
- this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, settleorg);
- nckd_orgamountFilter.and("enable", QCP.equals, "1");
- DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
- this.getModel().setValue("nckd_cyforg", nckd_org, rowIndex);
- Object value = this.getModel().getValue("nckd_payeenamevs");
- DynamicObject dynamicObjects = (DynamicObject) value;
- this.getModel().setValue("nckd_cyfwldw", dynamicObjects, rowIndex);
- this.getModel().setValue("nckd_cyfdata", bizdate, rowIndex);
- this.getModel().setValue("nckd_bigintfield", id, rowIndex);
- this.getModel().setValue("nckd_datefield1", duedate, rowIndex);
- this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
- this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
- if (nckdCyffyxm != null && !nckdCyffyxm.isEmpty()) {
- this.getModel().setValue("nckd_cyffyxm", nckd_cyffyxm, rowIndex);
- }
- String cysgzbalance = this.getModel().getValue("nckd_yfgzjehj").toString();
- BigDecimal bigDecimal = new BigDecimal(cysgzbalance);
- this.getModel().setValue("nckd_yfgzjehj", bigDecimal.add(settleamount), 0);
- } else if (btn_skskzh.equals(controls)) {
- String nckd_bankaccount = reJo.getString("nckd_bankaccount");
- String nckd_accountname = reJo.getString("nckd_accountname");
- this.getModel().setValue("nckd_payeebanknumlb", nckd_bankaccount);
- this.getModel().setValue("nckd_payeebanknamelb", nckd_accountname);
- } else if (btn_fkfkzh.equals(controls)) {
- String nckd_bankaccount = reJo.getString("nckd_bankaccount");
- String nckd_accountname = reJo.getString("nckd_accountname");
- this.getModel().setValue("nckd_payeebanknumlbs", nckd_bankaccount);
- this.getModel().setValue("nckd_payeebanknamelbs", nckd_accountname);
- this.getView().updateView("nckd_payeebanknumlbs");
- this.getView().updateView("nckd_payeebanknamelbs");
- }
- }
-
- this.getView().updateView("nckd_entryentity1");
-
- this.getView().updateView("nckd_entryentity2");
-
- this.getView().updateView("nckd_entryentity3");
- }
- }
- }
- @Override
- public void propertyChanged(PropertyChangedArgs e) {
- super.beforePropertyChanged(e);
- String name = e.getProperty().getName();
- if ("nckd_payeraccbanknum".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- DynamicObject payeenamevs = (DynamicObject) newValue;
- DynamicObject bank = payeenamevs.getDynamicObject("bank");
- this.getModel().setValue("nckd_payerbank", bank, rowIndex);
- }
- } else if ("nckd_payeeaccbanknum".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- DynamicObject payeenamevs = (DynamicObject) newValue;
- DynamicObject bank = payeenamevs.getDynamicObject("bank");
- this.getModel().setValue("nckd_payeebank", bank, rowIndex);
- }
- }else if ("nckd_yfgzjehj".equals(name)) {
- String newValue="";
- String oldValue="";
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- newValue = changeData.getNewValue().toString();
- oldValue = changeData.getOldValue().toString();
- }
- DynamicObjectCollection nckdEntryentity = this.getModel().getDataEntity().getDynamicObjectCollection("nckd_entryentity4");
- BigDecimal nckdFkamountfie = new BigDecimal(0);
- for(int i =0;i<nckdEntryentity.size();i++){
- DynamicObject dynamicObject = nckdEntryentity.get(i);
- BigDecimal nckdFkamountfie1 = dynamicObject.getBigDecimal("nckd_fkamountfie");
- nckdFkamountfie=nckdFkamountfie.add(nckdFkamountfie1);
- }
- if(nckdFkamountfie.compareTo(BigDecimal.ZERO)>0){
- if(!"0E-10".equals(newValue)){
- DynamicObjectCollection nckdEntryentity2 = this.getModel().getEntryEntity("nckd_entryentity2");
- DynamicObject dynamicObject = nckdEntryentity2.get(0);
- dynamicObject.set("nckd_cyfcxbalance",nckdFkamountfie);
- this.getView().updateView("nckd_entryentity2");
- }
- }
- }else if ("nckd_ysgzjehj".equals(name)) {
- String newValue="";
- String oldValue="";
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- newValue = changeData.getNewValue().toString();
- oldValue = changeData.getOldValue().toString();
- }
- DynamicObjectCollection nckdEntryentity = this.getModel().getDataEntity().getDynamicObjectCollection("nckd_entryentity");
- BigDecimal nckdFkamountfie = new BigDecimal(0);
- for(int i =0;i<nckdEntryentity.size();i++){
- DynamicObject dynamicObject = nckdEntryentity.get(i);
- BigDecimal nckdFkamountfie1 = dynamicObject.getBigDecimal("nckd_skamount");
- nckdFkamountfie=nckdFkamountfie.add(nckdFkamountfie1);
- }
- if(nckdFkamountfie.compareTo(BigDecimal.ZERO)>0){
- if(!"0E-10".equals(newValue)){
- DynamicObjectCollection nckdEntryentity2 = this.getModel().getEntryEntity("nckd_entryentity1");
- DynamicObject dynamicObject = nckdEntryentity2.get(0);
- dynamicObject.set("nckd_cyscxbalance",nckdFkamountfie);
- this.getView().updateView("nckd_entryentity1");
- }
- }
- }else if ("nckd_orgv".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- DynamicObject payeenamevs = (DynamicObject) newValue;
-
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamevs.getString("number"));
- DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{nckd_orgamountFilter});
- for (int c = 0; c < fa_lease_contract.length; c++) {
-
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
- QFilter nckd_bd_accountbanks = new QFilter("openorg.number", QCP.equals, dynamicObject.getString("number"));
- nckd_bd_accountbanks.and("isdefaultrec",QCP.equals,"1");
- nckd_bd_accountbanks.and("acctstatus",QCP.equals,"normal");
- DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bd_accountbanks", new QFilter[]{nckd_bd_accountbanks});
- if(dynamicObject1!=null){
- this.getModel().setValue("nckd_skzh", dynamicObject1);
- this.getView().updateView("nckd_skzh");
- DynamicObject bank = dynamicObject1.getDynamicObject("bank");
- this.getModel().setValue("nckd_skyh", bank);
- this.getView().updateView("nckd_skyh");
- }
- }
- }
- }else if ("nckd_orgvs".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- DynamicObject payeenamevs = (DynamicObject) newValue;
-
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamevs.getString("number"));
- DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{nckd_orgamountFilter});
- for (int c = 0; c < fa_lease_contract.length; c++) {
-
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
- QFilter nckd_bd_accountbanks = new QFilter("openorg.number", QCP.equals, dynamicObject.getString("number"));
- nckd_bd_accountbanks.and("isdefaultpay",QCP.equals,"1");
- nckd_bd_accountbanks.and("acctstatus",QCP.equals,"normal");
- DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bd_accountbanks", new QFilter[]{nckd_bd_accountbanks});
- if(dynamicObject1!=null){
- this.getModel().setValue("nckd_skzhs", dynamicObject1);
- this.getView().updateView("nckd_skzhs");
- DynamicObject bank = dynamicObject1.getDynamicObject("bank");
- this.getModel().setValue("nckd_skyhs", bank);
- this.getView().updateView("nckd_skyhs");
- }
- }
- }
- }else if ("nckd_orgfield".equals(name)) {
- ChangeData[] changeSet = e.getChangeSet();
- for (ChangeData changeData : changeSet) {
- int rowIndex = changeData.getRowIndex();
- Object newValue = changeData.getNewValue();
- Object oldValue = changeData.getOldValue();
- DynamicObject payeenamevs = (DynamicObject) newValue;
- QFilter filter;
-
- filter = new QFilter("fromorg.number", QCP.equals, payeenamevs.getString("number"));
- filter.and("typerelation.number", QCP.equals,"accounting2capital");
- Map<Object, DynamicObject> objectDynamicObjectMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation", new QFilter[]{filter});
- if(objectDynamicObjectMap.size()==1){
- for(Object idkey:objectDynamicObjectMap.keySet()){
- DynamicObject dynamicObject = objectDynamicObjectMap.get(idkey);
- DynamicObject toorg = dynamicObject.getDynamicObject("toorg");
- this.getModel().setValue("nckd_orgfield", toorg);
- this.getView().updateView("nckd_orgfield");
- }
- }
- }
- }
- }
- }
|