lc/lc123/cloud/app/plugin/form/result/SmDeliverNoticeBillPlugin.java

109 lines
4.6 KiB
Java

package tqq9.lc123.cloud.app.plugin.form.result;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
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.servicehelper.botp.BFTrackerServiceHelper;
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.HashSet;
import java.util.Map;
import static tqq9.lc123.cloud.app.plugin.form.result.CloneBill.cloneOperation;
//发货通知单(单据取消)
public class SmDeliverNoticeBillPlugin 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);
}
DynamicObject dataEntity = this.getModel().getDataEntity(true);
Map<String, HashSet<Long>> targetBills = BFTrackerServiceHelper.findTargetBills("sm_delivernotice", new Long[]{dataEntity.getLong("id")});
//下游存在系统进行提示不允许后续操作
if (null != targetBills && targetBills.size() > 0 && targetBills.containsKey("im_saloutbill")) {
this.getView().showMessage("存在下游单据,不允许拦截");
evt.setCancel(true);
}
}
/*String operationKey = evt.getOperationKey();
if ("unaudit".equals(operationKey)){
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("sm_delivernotice", new QFilter[]{new QFilter("billno", QCP.equals, billNo)});
String entityType = "sm_delivernotice";
String entityName;
String label = "tqq9_isclose";
DynamicObject org = dataEntity.getDynamicObject("org");//收货组织
if (null != org) {
String number = org.getString("number");
if ("SHLC".equals(number)) {
String warehouseCode = null;
DynamicObject warehouse = dataEntity.getDynamicObject("tqq9_ck");
if (null != warehouse) {
warehouseCode = warehouse.getString("number");
}
String orderType = "PTCK";
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.BGSaCancelSalesOrder(billNo, BJ_URL, entityType, entityName, label);
} else if ("GZLC".equals(number)) {
String GZURL = ConfigUtils.getThirdConfigByNumber("GZ_POSTURL");
entityName = "WMS-GZ-发货通知单取消";
message = BillCloseCancelUtils.BGSaCancelSalesOrder(billNo, GZURL, entityType, entityName, label);
}
if (StringUtils.isNotEmpty(message) && message.contains("关闭成功")) {
cloneOperation(dataEntity,"发货通知单","sm_salorder");
}
if (StringUtils.isNotEmpty(message)) {
this.getView().showMessage(String.valueOf(message));
}
}
}
}
}