diff --git a/lc123/cloud/app/plugin/form/result/PmPurRefundApplyBillPlugin.java b/lc123/cloud/app/plugin/form/result/PmPurRefundApplyBillPlugin.java new file mode 100644 index 0000000..aab4f4e --- /dev/null +++ b/lc123/cloud/app/plugin/form/result/PmPurRefundApplyBillPlugin.java @@ -0,0 +1,90 @@ +package tqq9.lc123.cloud.app.plugin.form.result; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.util.StringUtils; +import tqq9.lc123.cloud.app.plugin.utils.BillCloseCancelUtils; +import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils; + +import java.util.EventObject; + +//采购退货申请单(单据取消) + +public class PmPurRefundApplyBillPlugin extends AbstractBillPlugIn { + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmain"); + + } + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + String itemKey = evt.getItemKey(); + if ("tqq9_close".equals(itemKey)) { + boolean tqq9_isclose = (boolean) this.getModel().getValue("tqq9_isclose"); + if (tqq9_isclose) { + this.getView().showMessage("该单据已关闭"); + evt.setCancel(true); + } + } + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if ("tqq9_close".equals(itemKey)) { + String billNo = (String) this.getModel().getValue("billno"); + String message = null; + DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("pm_purrefundapplybill", "id,billno,org,billentry.tqq9_thck", + new QFilter[]{new QFilter("billno", QCP.equals, billNo)}); + + String entityType = "pm_purrefundapplybill"; + String entityName; + String label = "tqq9_isclose"; + DynamicObject org = dataEntity.getDynamicObject("org");//收货组织 + if (null != org) { + String number = org.getString("number"); + if ("SHLC".equals(number)) { + DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); + String warehouseCode = null; + for (DynamicObject dynamicObject : billentry) { + DynamicObject warehouse = dynamicObject.getDynamicObject("tqq9_thck"); + if (null != warehouse) { + warehouseCode = warehouse.getString("number"); + } + } + String orderType = "CGTH"; + entityName = "WMS-SH-收货通知单取消"; + message = BillCloseCancelUtils.wmsCancel(orderType, warehouseCode, billNo, entityType, entityName, label); + } else if ("BJLC".equals(number)) { + String BJ_URL = ConfigUtils.getThirdConfigByNumber("BJ_POSTURL"); + entityName = "WMS-BJ-收货通知单取消"; + message = BillCloseCancelUtils.BGPuCancelPurReturn(billNo, BJ_URL, entityType, entityName, label); + + } else if ("GZLC".equals(number)) { + String GZURL = ConfigUtils.getThirdConfigByNumber("GZ_POSTURL"); + entityName = "WMS-GZ-收货通知单取消"; + message = BillCloseCancelUtils.BGPuCancelPurReturn(billNo, GZURL, entityType, entityName, label); + + } + if (StringUtils.isNotEmpty(message)) { + this.getView().showMessage(String.valueOf(message)); + + } + + } + + } + } +} diff --git a/lc123/cloud/app/plugin/form/result/PmPurRefundApplyListPlugin.java b/lc123/cloud/app/plugin/form/result/PmPurRefundApplyListPlugin.java new file mode 100644 index 0000000..43454ca --- /dev/null +++ b/lc123/cloud/app/plugin/form/result/PmPurRefundApplyListPlugin.java @@ -0,0 +1,112 @@ +package tqq9.lc123.cloud.app.plugin.form.result; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.ListSelectedRow; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.BillList; +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.bos.util.StringUtils; +import tqq9.lc123.cloud.app.plugin.utils.BillCloseCancelUtils; +import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils; + +import java.util.EventObject; +import java.util.List; +import java.util.stream.Collectors; + +//采购退货申请单(单据取消) + +public class PmPurRefundApplyListPlugin extends AbstractListPlugin { + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + //标准单据列表模板为bos_list,需使用该模板中的控件标识(如工具栏标识toolbarap)进行监听。 + // 列表插件继承AbstractListPlugin时,底层已默认注册工具栏监听,无需重复注册 + } + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + String itemKey = evt.getItemKey(); + if ("tqq9_close".equals(itemKey)) { + BillList billList = this.getControl("billlistap"); + ListSelectedRowCollection selectedRows = billList.getSelectedRows(); + List billnoList = selectedRows.stream().map(ListSelectedRow::getBillNo).distinct().collect(Collectors.toList()); + if (billnoList.size() > 1) { + this.getView().showMessage("请选择一张单据"); + evt.setCancel(true); + return; + } + DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("pm_purrefundapplybill", "id,billno,tqq9_isclose", + new QFilter[]{new QFilter("billno", QCP.in, billnoList)}); + if (null != dataEntity) { + /* boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose"); + if (tqq9_isclose) { + this.getView().showMessage("该单据已关闭"); + evt.setCancel(true); + }*/ + } + + } + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if ("tqq9_close".equals(itemKey)) { + BillList billList = this.getControl("billlistap"); + ListSelectedRowCollection selectedRows = billList.getSelectedRows(); + List billnoList = selectedRows.stream().map(ListSelectedRow::getBillNo).distinct().collect(Collectors.toList()); + for (String billNo : billnoList) { + String message = null; + DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("pm_purrefundapplybill", "id,billno,org,billentry.tqq9_thck", + new QFilter[]{new QFilter("billno", QCP.equals, billNo)}); + + String entityType = "pm_purrefundapplybill"; + String entityName; + String label = "tqq9_isclose"; + DynamicObject org = dataEntity.getDynamicObject("org");//收货组织 + if (null != org) { + String number = org.getString("number"); + if ("SHLC".equals(number)) { + DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); + String warehouseCode = null; + for (DynamicObject dynamicObject : billentry) { + DynamicObject warehouse = dynamicObject.getDynamicObject("tqq9_thck"); + if (null != warehouse) { + warehouseCode = warehouse.getString("number"); + } + } + String orderType = "CGTH"; + entityName = "WMS-SH-采购退货申请单取消"; + message = BillCloseCancelUtils.wmsCancel(orderType, warehouseCode, billNo, entityType, entityName, label); + } else if ("BJLC".equals(number)) { + String BJ_URL = ConfigUtils.getThirdConfigByNumber("BJ_POSTURL"); + entityName = "WMS-BJ-采购退货申请单取消"; + message = BillCloseCancelUtils.BGPuCancelPurReturn(billNo, BJ_URL, entityType, entityName, label); + + } else if ("GZLC".equals(number)) { + String GZURL = ConfigUtils.getThirdConfigByNumber("GZ_POSTURL"); + entityName = "WMS-GZ-采购退货申请单取消"; + message = BillCloseCancelUtils.BGPuCancelPurReturn(billNo, GZURL, entityType, entityName, label); + + } + if (StringUtils.isNotEmpty(message)) { + this.getView().showMessage(String.valueOf(message)); + + } + + } + + } + + } + } +} diff --git a/lc123/cloud/app/plugin/utils/BillCloseCancelUtils.java b/lc123/cloud/app/plugin/utils/BillCloseCancelUtils.java index 4be2c75..330b64f 100644 --- a/lc123/cloud/app/plugin/utils/BillCloseCancelUtils.java +++ b/lc123/cloud/app/plugin/utils/BillCloseCancelUtils.java @@ -181,4 +181,38 @@ public class BillCloseCancelUtils { } return message; } + + /** + * 北广 采购退货申请单取消(采购退货拦截) + * + * @param billNo 单据编号 + * @param url 接口地址,北京还是广州 + * @param entityType 单据标识 + * @param entityName 单据名称 + * @param label 推送标识 + * @return 关闭结果 + */ + public static String BGPuCancelPurReturn(String billNo, String url, String entityType, String entityName, String label) { + String message = null; + String method = "/api/PU/Cancel_PurReturn"; + Map bj_map = new HashMap<>(); + bj_map.put("cPRCode", billNo); + String bjjsonBody = JSON.toJSONString(bj_map); + try { + String result = HttpRequestUtils.postJson(url + method, bjjsonBody, null); + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode rootNode = objectMapper.readTree(result); + if (null != rootNode) { + message = String.valueOf(rootNode.get("message")); + String code = String.valueOf(rootNode.get("code")); + LCLogServiceImpl lcLogService = new LCLogServiceImpl(); + lcLogService.savelog(entityName, url, true, code.equals("0"), bjjsonBody, result); + lcLogService.isSuccess(entityType, billNo, "billno", label, code.equals("0")); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + return message; + } }