BusinessProcessingEditPlugin.java 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. package fi.em.formPlugin;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import kd.bos.dataentity.entity.DynamicObject;
  5. import kd.bos.dataentity.entity.DynamicObjectCollection;
  6. import kd.bos.entity.datamodel.events.ChangeData;
  7. import kd.bos.entity.datamodel.events.PropertyChangedArgs;
  8. import kd.bos.exception.KDBizException;
  9. import kd.bos.form.CloseCallBack;
  10. import kd.bos.form.FormShowParameter;
  11. import kd.bos.form.ShowType;
  12. import kd.bos.form.events.AfterDoOperationEventArgs;
  13. import kd.bos.form.events.ClosedCallBackEvent;
  14. import kd.bos.list.ListShowParameter;
  15. import kd.bos.list.plugin.AbstractListPlugin;
  16. import kd.bos.orm.query.QCP;
  17. import kd.bos.orm.query.QFilter;
  18. import kd.bos.servicehelper.BusinessDataServiceHelper;
  19. import kd.sdk.plugin.Plugin;
  20. import org.apache.commons.lang3.StringUtils;
  21. import java.math.BigDecimal;
  22. import java.util.Date;
  23. import java.util.HashMap;
  24. import java.util.Map;
  25. public class BusinessProcessingEditPlugin extends AbstractListPlugin implements Plugin {
  26. public static String btn_cysgzmx = "cysgzmx"; //冲应收挂账
  27. public static String btn_cyfgzmx = "cyfgzmx"; //冲应付挂账
  28. public static String btn_pzht = "pzht"; //凭租合同
  29. public static String btn_skskzh = "skskzh"; //收款供应商11
  30. public static String btn_fkfkzh = "fkfkzh"; //付款供应商
  31. public static String nckd_agentparameterf7 = "nckd_ywclskf";//动态列表
  32. private static String bos_org = "bos_org"; //组织金额标识
  33. @Override
  34. public void afterDoOperation(AfterDoOperationEventArgs e) {
  35. String operateKey = e.getOperateKey();
  36. if (btn_cysgzmx.equals(e.getOperateKey())) {
  37. Object value = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
  38. Object nckd_orgv = this.getModel().getValue("nckd_orgv");//获取当前单据付款人
  39. DynamicObject dynamicObject = (DynamicObject) value;
  40. DynamicObject orgv = (DynamicObject) nckd_orgv;
  41. if (dynamicObject == null) {
  42. throw new KDBizException("收款信息付款人为空!");
  43. }
  44. if (orgv == null) {
  45. throw new KDBizException("收款信息收款人为空!");
  46. }
  47. String payeenamev = dynamicObject.getString("name");//当前单据付款供应商
  48. String orgnumber = orgv.getString("number");
  49. nckd_agentparameterf7 = "nckd_cysgzmxf7";
  50. showParameter(nckd_agentparameterf7, btn_cysgzmx, payeenamev, btn_cysgzmx, orgnumber);//调用弹出页面
  51. } else if (btn_cyfgzmx.equals(e.getOperateKey())) {
  52. Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前单据付款人
  53. Object nckd_orgvs = this.getModel().getValue("nckd_orgvs");//获取当前单据收款人
  54. DynamicObject dynamicObject = (DynamicObject) value;
  55. DynamicObject orgvs = (DynamicObject) nckd_orgvs;
  56. if (dynamicObject == null) {
  57. throw new KDBizException("付款信息收款人为空!");
  58. }
  59. if (orgvs == null) {
  60. throw new KDBizException("付款信息付款人为空!");
  61. }
  62. String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
  63. String orgnumber = orgvs.getString("number");
  64. nckd_agentparameterf7 = "nckd_cyfgzmxf7";
  65. showParameter(nckd_agentparameterf7, btn_cyfgzmx, payeenamev, btn_cyfgzmx, orgnumber);//调用弹出页面
  66. } else if (btn_pzht.equals(e.getOperateKey())) {
  67. Object value = this.getModel().getValue("nckd_orgv");//获取当前单据核算组织
  68. Object nckd_payeenamevs = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
  69. DynamicObject dynamicObject = (DynamicObject) value;
  70. DynamicObject payeenamevs = (DynamicObject) nckd_payeenamevs;
  71. if (dynamicObject == null) {
  72. throw new KDBizException("收款信息收款人为空!");
  73. }
  74. if (payeenamevs == null) {
  75. throw new KDBizException("收款信息付款人为空!");
  76. }
  77. String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
  78. String nckdpayeenamevs = payeenamevs.getString("number");//当前单据付款供应商编码
  79. nckd_agentparameterf7 = "nckd_pzhtf7";
  80. showParameter(nckd_agentparameterf7, btn_pzht, nckdpayeenamevs, btn_pzht, payeenamev);//调用弹出页面
  81. } else if (btn_skskzh.equals(e.getOperateKey())) {
  82. Object value = this.getModel().getValue("nckd_payeenamev");//获取当前收款信息付款人
  83. DynamicObject dynamicObject = (DynamicObject) value;
  84. if (dynamicObject == null) {
  85. throw new KDBizException("收款信息付款人为空!");
  86. }
  87. String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
  88. nckd_agentparameterf7 = "nckd_supplierbank";
  89. showParameter(nckd_agentparameterf7, btn_skskzh, payeenamev, btn_skskzh, "");//调用弹出页面
  90. } else if (btn_fkfkzh.equals(e.getOperateKey())) {
  91. Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前付款信息付款人
  92. DynamicObject dynamicObject = (DynamicObject) value;
  93. if (dynamicObject == null) {
  94. throw new KDBizException("付款信息收款人为空!");
  95. }
  96. String payeenamev = dynamicObject.getString("number");//当前单据付款供应商编码
  97. nckd_agentparameterf7 = "nckd_supplierbank";
  98. showParameter(nckd_agentparameterf7, btn_fkfkzh, payeenamev, btn_fkfkzh, "");//调用弹出页面
  99. }
  100. }
  101. public void showParameter(String formId, String actionId, String payeenamev, String controls, String orgnumber) {
  102. //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
  103. FormShowParameter ShowParameter = new FormShowParameter();
  104. //ListShowParameter ShowParameter = new ListShowParameter();
  105. ShowParameter.setCustomParam("payeenamev", payeenamev);
  106. ShowParameter.setCustomParam("controls", controls);
  107. ShowParameter.setCustomParam("billtype", formId);
  108. ShowParameter.setCustomParam("orgnumber", orgnumber);
  109. //设置弹出页面的编码
  110. ShowParameter.setFormId(formId);
  111. // ShowParameter.setCaption();
  112. //设置弹出页面标题
  113. if ("cysgzmx".equals(actionId)) {
  114. ShowParameter.setCaption("冲应收挂账");
  115. } else if ("cyfgzmx".equals(actionId)) {
  116. ShowParameter.setCaption("冲应付挂账");
  117. }
  118. //设置页面关闭回调方法
  119. //CloseCallBack参数:回调插件,回调标识 btnok
  120. ShowParameter.setCloseCallBack(new CloseCallBack(this, actionId));
  121. //设置弹出页面打开方式,支持模态,新标签等
  122. ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
  123. //弹出页面对象赋值给父页面
  124. this.getView().showForm(ShowParameter);
  125. }
  126. @Override
  127. public void closedCallBack(ClosedCallBackEvent e) {
  128. super.closedCallBack(e);
  129. if (null != e.getReturnData()) {
  130. String billtype = "";
  131. String controls = "";
  132. //父页面返回参数
  133. HashMap<String, String> returnData = (HashMap<String, String>) e.getReturnData();
  134. String reJaStr = returnData.get("reJaStr");
  135. //判断空
  136. if (StringUtils.isNotBlank(reJaStr)) {
  137. JSONArray reJa = JSONArray.parseArray(reJaStr);//返回信息数组
  138. JSONObject reJos = reJa.getJSONObject(0);
  139. billtype = reJos.getString("billtype");
  140. controls = reJos.getString("controls");
  141. //删除分录信息
  142. if (btn_cysgzmx.equals(controls)) {
  143. this.getModel().deleteEntryData("nckd_entryentity1");
  144. } else if (btn_cyfgzmx.equals(controls)) {
  145. this.getModel().deleteEntryData("nckd_entryentity2");
  146. } else if (btn_pzht.equals(controls)) {
  147. this.getModel().deleteEntryData("nckd_entryentity3");
  148. }
  149. //循环返回数组插入分录
  150. for (int i = 0; i < reJa.size(); i++) {
  151. //当前循环行
  152. JSONObject reJo = reJa.getJSONObject(i);
  153. billtype = reJo.getString("billtype");
  154. controls = reJo.getString("controls");
  155. if (btn_cysgzmx.equals(controls)) {
  156. String billno = reJo.getString("nckd_cysnumber");
  157. String cysfyxm = reJo.getString("nckd_cysfyxm");
  158. String settleorg = reJo.getString("settleorg");
  159. String expectdate = reJo.getString("expectdate");
  160. QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals, cysfyxm);
  161. DynamicObject nckd_cysfyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id", new QFilter[]{nckd_cysfyxmFilter});
  162. Date bizdate = reJo.getDate("nckd_cysdata");
  163. BigDecimal settleamount = reJo.getBigDecimal("nckd_cysgzbalance");
  164. //新增分录行
  165. int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity1");
  166. //set分录字段
  167. this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
  168. QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, settleorg);
  169. nckd_orgamountFilter.and("enable", QCP.equals, "1");
  170. DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
  171. this.getModel().setValue("nckd_cysorg", nckd_org, rowIndex);
  172. Object nckd_costdept = this.getModel().getValue("nckd_costdept");//获取当前单据付款人
  173. DynamicObject costdept = (DynamicObject) nckd_costdept;
  174. this.getModel().setValue("nckd_cyssection", costdept, rowIndex);
  175. Object value = this.getModel().getValue("nckd_payeenamev");//获取当前单据付款人
  176. DynamicObject dynamicObject = (DynamicObject) value;
  177. this.getModel().setValue("nckd_cyswldw", dynamicObject, rowIndex);
  178. this.getModel().setValue("nckd_datefield", expectdate, rowIndex);
  179. this.getModel().setValue("nckd_cysdata", bizdate, rowIndex);
  180. this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
  181. this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
  182. if (cysfyxm != null && !cysfyxm.isEmpty()) {
  183. this.getModel().setValue("nckd_cysfyxm", nckd_cysfyxm, rowIndex);
  184. }
  185. String cysgzbalance = this.getModel().getValue("nckd_ysgzjehj").toString();
  186. BigDecimal bigDecimal = new BigDecimal(cysgzbalance);
  187. this.getModel().setValue("nckd_ysgzjehj", bigDecimal.add(settleamount), 0);
  188. } else if (btn_pzht.equals(controls)) {
  189. //核算组织
  190. String pzhtorg = reJo.getString("nckd_pzhtorg");
  191. QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, pzhtorg);
  192. nckd_orgamountFilter.and("enable", QCP.equals, "1");
  193. DynamicObject nckd_pzhtorg = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
  194. //合同号
  195. String pzhthth = reJo.getString("nckd_pzhthth");
  196. //合同名称
  197. String pzhtname = reJo.getString("nckd_pzhtname");
  198. //承租方
  199. String pzhtczf = reJo.getString("nckd_pzhtczf");
  200. QFilter nckd_pzhtczfFilter = new QFilter("number", QCP.equals, pzhtczf);
  201. DynamicObject nckd_pzhtczf = BusinessDataServiceHelper.loadSingle("bd_supplier", "id", new QFilter[]{nckd_pzhtczfFilter});
  202. //资产名称
  203. String pzhtzcname = reJo.getString("nckd_pzhtzcname");
  204. //合同签订日期
  205. Date bizdate = reJo.getDate("nckd_ppzhtdata");
  206. //收款余额
  207. BigDecimal pzhtskbalance = reJo.getBigDecimal("nckd_pzhtskbalance");
  208. //冲销余额
  209. BigDecimal pzhtcxbalance = reJo.getBigDecimal("nckd_pzhtcxbalance");
  210. //新增分录行
  211. int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity3");
  212. //set分录字段
  213. this.getModel().setValue("nckd_pzhtorg", nckd_pzhtorg, rowIndex);
  214. this.getModel().setValue("nckd_pzhthth", pzhthth, rowIndex);
  215. this.getModel().setValue("nckd_pzhtname", pzhtname, rowIndex);
  216. this.getModel().setValue("nckd_pzhtczf", nckd_pzhtczf, rowIndex);
  217. this.getModel().setValue("nckd_pzhtzcname", pzhtzcname, rowIndex);
  218. this.getModel().setValue("nckd_ppzhtdata", bizdate, rowIndex);
  219. this.getModel().setValue("nckd_pzhtskbalance", pzhtskbalance, rowIndex);
  220. this.getModel().setValue("nckd_pzhtcxbalance", pzhtcxbalance, rowIndex);
  221. } else if (btn_cyfgzmx.equals(controls)) {
  222. String billno = reJo.getString("nckd_cyfnumber");
  223. Date bizdate = reJo.getDate("nckd_cyfdata");
  224. String nckdCyffyxm = reJo.getString("nckd_cyffyxm");
  225. String settleorg = reJo.getString("settleorg");
  226. String duedate = reJo.getString("duedate");
  227. Long id = reJo.getLong("id");
  228. QFilter nckd_cysfyxmFilter = new QFilter("number", QCP.equals, nckdCyffyxm);
  229. DynamicObject nckd_cyffyxm = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id", new QFilter[]{nckd_cysfyxmFilter});
  230. BigDecimal settleamount = reJo.getBigDecimal("nckd_cyfgzbalance");
  231. //新增分录行
  232. int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity2");
  233. //set分录字段
  234. this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
  235. QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, settleorg);
  236. nckd_orgamountFilter.and("enable", QCP.equals, "1");
  237. DynamicObject nckd_org = BusinessDataServiceHelper.loadSingle(bos_org, "id", new QFilter[]{nckd_orgamountFilter});
  238. this.getModel().setValue("nckd_cyforg", nckd_org, rowIndex);
  239. Object value = this.getModel().getValue("nckd_payeenamevs");//获取当前单据付款人
  240. DynamicObject dynamicObjects = (DynamicObject) value;
  241. this.getModel().setValue("nckd_cyfwldw", dynamicObjects, rowIndex);
  242. this.getModel().setValue("nckd_cyfdata", bizdate, rowIndex);
  243. this.getModel().setValue("nckd_bigintfield", id, rowIndex);
  244. this.getModel().setValue("nckd_datefield1", duedate, rowIndex);
  245. this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
  246. this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
  247. if (nckdCyffyxm != null && !nckdCyffyxm.isEmpty()) {
  248. this.getModel().setValue("nckd_cyffyxm", nckd_cyffyxm, rowIndex);
  249. }
  250. String cysgzbalance = this.getModel().getValue("nckd_yfgzjehj").toString();
  251. BigDecimal bigDecimal = new BigDecimal(cysgzbalance);
  252. this.getModel().setValue("nckd_yfgzjehj", bigDecimal.add(settleamount), 0);
  253. } else if (btn_skskzh.equals(controls)) {
  254. String nckd_bankaccount = reJo.getString("nckd_bankaccount");
  255. String nckd_accountname = reJo.getString("nckd_accountname");
  256. this.getModel().setValue("nckd_payeebanknumlb", nckd_bankaccount);
  257. this.getModel().setValue("nckd_payeebanknamelb", nckd_accountname);
  258. } else if (btn_fkfkzh.equals(controls)) {
  259. String nckd_bankaccount = reJo.getString("nckd_bankaccount");
  260. String nckd_accountname = reJo.getString("nckd_accountname");
  261. this.getModel().setValue("nckd_payeebanknumlbs", nckd_bankaccount);
  262. this.getModel().setValue("nckd_payeebanknamelbs", nckd_accountname);
  263. this.getView().updateView("nckd_payeebanknumlbs");
  264. this.getView().updateView("nckd_payeebanknamelbs");
  265. }
  266. }
  267. //刷新分录
  268. this.getView().updateView("nckd_entryentity1");
  269. //刷新分录
  270. this.getView().updateView("nckd_entryentity2");
  271. //刷新分录
  272. this.getView().updateView("nckd_entryentity3");
  273. }
  274. }
  275. }
  276. @Override
  277. public void propertyChanged(PropertyChangedArgs e) {
  278. super.beforePropertyChanged(e);
  279. String name = e.getProperty().getName();//获取字段标识
  280. if ("nckd_payeraccbanknum".equals(name)) {
  281. ChangeData[] changeSet = e.getChangeSet();//获取值
  282. for (ChangeData changeData : changeSet) {
  283. int rowIndex = changeData.getRowIndex();
  284. Object newValue = changeData.getNewValue();
  285. Object oldValue = changeData.getOldValue();
  286. DynamicObject payeenamevs = (DynamicObject) newValue;
  287. DynamicObject bank = payeenamevs.getDynamicObject("bank");
  288. this.getModel().setValue("nckd_payerbank", bank, rowIndex);
  289. }
  290. } else if ("nckd_payeeaccbanknum".equals(name)) {
  291. ChangeData[] changeSet = e.getChangeSet();//获取值
  292. for (ChangeData changeData : changeSet) {
  293. int rowIndex = changeData.getRowIndex();
  294. Object newValue = changeData.getNewValue();
  295. Object oldValue = changeData.getOldValue();
  296. DynamicObject payeenamevs = (DynamicObject) newValue;
  297. DynamicObject bank = payeenamevs.getDynamicObject("bank");
  298. this.getModel().setValue("nckd_payeebank", bank, rowIndex);
  299. }
  300. }else if ("nckd_yfgzjehj".equals(name)) {
  301. String newValue="";
  302. String oldValue="";
  303. ChangeData[] changeSet = e.getChangeSet();//获取值
  304. for (ChangeData changeData : changeSet) {
  305. int rowIndex = changeData.getRowIndex();
  306. newValue = changeData.getNewValue().toString();
  307. oldValue = changeData.getOldValue().toString();
  308. }
  309. DynamicObjectCollection nckdEntryentity = this.getModel().getDataEntity().getDynamicObjectCollection("nckd_entryentity4");
  310. BigDecimal nckdFkamountfie = new BigDecimal(0);
  311. for(int i =0;i<nckdEntryentity.size();i++){
  312. DynamicObject dynamicObject = nckdEntryentity.get(i);
  313. BigDecimal nckdFkamountfie1 = dynamicObject.getBigDecimal("nckd_fkamountfie");
  314. nckdFkamountfie=nckdFkamountfie.add(nckdFkamountfie1);
  315. }
  316. if(nckdFkamountfie.compareTo(BigDecimal.ZERO)>0){
  317. if(!"0E-10".equals(newValue)){
  318. DynamicObjectCollection nckdEntryentity2 = this.getModel().getEntryEntity("nckd_entryentity2");
  319. DynamicObject dynamicObject = nckdEntryentity2.get(0);
  320. dynamicObject.set("nckd_cyfcxbalance",nckdFkamountfie);
  321. // this.getModel().setValue("nckd_cyfcxbalance", nckdFkamountfie, 1);
  322. this.getView().updateView("nckd_entryentity2");
  323. }
  324. }
  325. }else if ("nckd_ysgzjehj".equals(name)) {
  326. String newValue="";
  327. String oldValue="";
  328. ChangeData[] changeSet = e.getChangeSet();//获取值
  329. for (ChangeData changeData : changeSet) {
  330. int rowIndex = changeData.getRowIndex();
  331. newValue = changeData.getNewValue().toString();
  332. oldValue = changeData.getOldValue().toString();
  333. }
  334. DynamicObjectCollection nckdEntryentity = this.getModel().getDataEntity().getDynamicObjectCollection("nckd_entryentity");
  335. BigDecimal nckdFkamountfie = new BigDecimal(0);
  336. for(int i =0;i<nckdEntryentity.size();i++){
  337. DynamicObject dynamicObject = nckdEntryentity.get(i);
  338. BigDecimal nckdFkamountfie1 = dynamicObject.getBigDecimal("nckd_skamount");
  339. nckdFkamountfie=nckdFkamountfie.add(nckdFkamountfie1);
  340. }
  341. if(nckdFkamountfie.compareTo(BigDecimal.ZERO)>0){
  342. if(!"0E-10".equals(newValue)){
  343. DynamicObjectCollection nckdEntryentity2 = this.getModel().getEntryEntity("nckd_entryentity1");
  344. DynamicObject dynamicObject = nckdEntryentity2.get(0);
  345. dynamicObject.set("nckd_cyscxbalance",nckdFkamountfie);
  346. // this.getModel().setValue("nckd_cyfcxbalance", nckdFkamountfie, 1);
  347. this.getView().updateView("nckd_entryentity1");
  348. }
  349. }
  350. }else if ("nckd_orgv".equals(name)) {
  351. ChangeData[] changeSet = e.getChangeSet();//获取值
  352. for (ChangeData changeData : changeSet) {
  353. int rowIndex = changeData.getRowIndex();
  354. Object newValue = changeData.getNewValue();
  355. Object oldValue = changeData.getOldValue();
  356. DynamicObject payeenamevs = (DynamicObject) newValue;
  357. //构建查询供应商参数
  358. QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamevs.getString("number"));
  359. DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{nckd_orgamountFilter});
  360. for (int c = 0; c < fa_lease_contract.length; c++) {
  361. //当前单头
  362. DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
  363. QFilter nckd_bd_accountbanks = new QFilter("openorg.number", QCP.equals, dynamicObject.getString("number"));
  364. nckd_bd_accountbanks.and("isdefaultrec",QCP.equals,"1");
  365. nckd_bd_accountbanks.and("acctstatus",QCP.equals,"normal");
  366. DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bd_accountbanks", new QFilter[]{nckd_bd_accountbanks});
  367. if(dynamicObject1!=null){
  368. this.getModel().setValue("nckd_skzh", dynamicObject1);
  369. this.getView().updateView("nckd_skzh");
  370. DynamicObject bank = dynamicObject1.getDynamicObject("bank");
  371. this.getModel().setValue("nckd_skyh", bank);
  372. this.getView().updateView("nckd_skyh");
  373. }
  374. }
  375. }
  376. }else if ("nckd_orgvs".equals(name)) {
  377. ChangeData[] changeSet = e.getChangeSet();//获取值
  378. for (ChangeData changeData : changeSet) {
  379. int rowIndex = changeData.getRowIndex();
  380. Object newValue = changeData.getNewValue();
  381. Object oldValue = changeData.getOldValue();
  382. DynamicObject payeenamevs = (DynamicObject) newValue;
  383. //构建查询供应商参数
  384. QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals, payeenamevs.getString("number"));
  385. DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{nckd_orgamountFilter});
  386. for (int c = 0; c < fa_lease_contract.length; c++) {
  387. //当前单头
  388. DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
  389. QFilter nckd_bd_accountbanks = new QFilter("openorg.number", QCP.equals, dynamicObject.getString("number"));
  390. nckd_bd_accountbanks.and("isdefaultpay",QCP.equals,"1");
  391. nckd_bd_accountbanks.and("acctstatus",QCP.equals,"normal");
  392. DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle("bd_accountbanks", new QFilter[]{nckd_bd_accountbanks});
  393. if(dynamicObject1!=null){
  394. this.getModel().setValue("nckd_skzhs", dynamicObject1);
  395. this.getView().updateView("nckd_skzhs");
  396. DynamicObject bank = dynamicObject1.getDynamicObject("bank");
  397. this.getModel().setValue("nckd_skyhs", bank);
  398. this.getView().updateView("nckd_skyhs");
  399. }
  400. }
  401. }
  402. }else if ("nckd_orgfield".equals(name)) {
  403. ChangeData[] changeSet = e.getChangeSet();//获取值
  404. for (ChangeData changeData : changeSet) {
  405. int rowIndex = changeData.getRowIndex();
  406. Object newValue = changeData.getNewValue();
  407. Object oldValue = changeData.getOldValue();
  408. DynamicObject payeenamevs = (DynamicObject) newValue;
  409. QFilter filter;
  410. //给基础资料添加过滤
  411. filter = new QFilter("fromorg.number", QCP.equals, payeenamevs.getString("number"));
  412. filter.and("typerelation.number", QCP.equals,"accounting2capital");
  413. Map<Object, DynamicObject> objectDynamicObjectMap = BusinessDataServiceHelper.loadFromCache("bos_org_orgrelation", new QFilter[]{filter});
  414. if(objectDynamicObjectMap.size()==1){
  415. for(Object idkey:objectDynamicObjectMap.keySet()){
  416. DynamicObject dynamicObject = objectDynamicObjectMap.get(idkey);
  417. DynamicObject toorg = dynamicObject.getDynamicObject("toorg");
  418. this.getModel().setValue("nckd_orgfield", toorg);
  419. this.getView().updateView("nckd_orgfield");
  420. }
  421. }
  422. }
  423. }
  424. }
  425. }