123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362 |
- 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.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;
- 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"; //收款供应商11
- 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表示弹出页面为动态表单
- FormShowParameter ShowParameter = new FormShowParameter();
- //ListShowParameter ShowParameter = new ListShowParameter();
- ShowParameter.setCustomParam("payeenamev", payeenamev);
- ShowParameter.setCustomParam("controls", controls);
- ShowParameter.setCustomParam("billtype", formId);
- ShowParameter.setCustomParam("orgnumber", orgnumber);
- //设置弹出页面的编码
- ShowParameter.setFormId(formId);
- // ShowParameter.setCaption();
- //设置弹出页面标题
- if ("cysgzmx".equals(actionId)) {
- ShowParameter.setCaption("冲应收挂账");
- } else if ("cyfgzmx".equals(actionId)) {
- ShowParameter.setCaption("冲应付挂账");
- }
- //设置页面关闭回调方法
- //CloseCallBack参数:回调插件,回调标识 btnok
- 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");
- //set分录字段
- 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");
- //set分录字段
- 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");
- //set分录字段
- 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_payeenamev".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("bd_supplier", "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());
- for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
- String bankaccount = entryentity.getString("bankaccount");
- DynamicObject bank = entryentity.getDynamicObject("bank");
- boolean nckdIsdefaultBank = entryentity.getBoolean("isdefault_bank");
- if(nckdIsdefaultBank){
- QFilter banks = new QFilter("nckd_bankaccount", QCP.equals, bankaccount);
- DynamicObject nckd_bank = BusinessDataServiceHelper.loadSingle("nckd_supplierbankinfor", "id", new QFilter[]{banks});
- this.getModel().setValue("nckd_payeebanknumlb", nckd_bank);
- this.getView().updateView("nckd_payeebanknumlb");
- }
- }
- }
- }
- }else if ("nckd_payeenamevs".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("bd_supplier", "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());
- for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry_bank")) {
- String bankaccount = entryentity.getString("bankaccount");
- DynamicObject bank = entryentity.getDynamicObject("bank");
- boolean nckdIsdefaultBank = entryentity.getBoolean("isdefault_bank");
- if(nckdIsdefaultBank){
- QFilter banks = new QFilter("nckd_bankaccount", QCP.equals, bankaccount);
- banks.and("nckd_isdefault_bank", QCP.equals, "1");
- DynamicObject nckd_bank = BusinessDataServiceHelper.loadSingle("nckd_supplierbankinfor", "id", new QFilter[]{banks});
- this.getModel().setValue("nckd_payeebanknumlbs", nckd_bank);
- this.getView().updateView("nckd_payeebanknumlbs");
- }
- }
- }
- }
- }
- }
- }
|