lc/lc123/cloud/app/plugin/form/sys/RegistBillFactoryPlugin.java

135 lines
6.1 KiB
Java

package tqq9.lc123.cloud.app.plugin.form.sys;
import com.alibaba.fastjson.JSON;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.entity.LocaleString;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.field.ComboEdit;
import kd.bos.form.field.ComboItem;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
/**
* 注册证界面插件
* 厂商许可证号动态添加下拉框选项
*/
public class RegistBillFactoryPlugin extends AbstractBillPlugIn {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("tqq9_advcontoolbarap");
}
@Override
public void afterBindData(EventObject e) {
super.afterBindData(e);
String tqq9_type = (String) this.getModel().getValue("tqq9_type");
if("A".equals(tqq9_type)){
//如果是总代,加载总代的许可证号
String tqq9_proxyno = (String) this.getModel().getValue("tqq9_proxyno");
DynamicObject tqq9_supplier = (DynamicObject) this.getModel().getValue("tqq9_proxy");//生产厂家
ComboEdit comboEdit = this.getControl("tqq9_proxyno");
comboEdit.setText(tqq9_proxyno);
setProxyField(tqq9_supplier, "tqq9_proxyno", comboEdit);
}
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String name = e.getProperty().getName();
if("tqq9_supplier".equals(name)){
//动态添加厂商的许可证号
ComboEdit comboEdit = this.getControl("tqq9_supno");
DynamicObject tqq9_supplier = (DynamicObject) this.getModel().getValue("tqq9_supplier");//生产厂家
setProxyField(tqq9_supplier, "tqq9_supno", comboEdit);
}else if("tqq9_proxy".equals(name)){
//动态添加总代的许可证号
ComboEdit comboEdit = this.getControl("tqq9_proxyno");
DynamicObject tqq9_supplier = (DynamicObject) this.getModel().getValue("tqq9_proxy");//生产厂家
setProxyField(tqq9_supplier, "tqq9_proxyno", comboEdit);
}
}
private void setProxyField(DynamicObject tqq9_supplier, String fieldName, ComboEdit comboEdit) {
if(tqq9_supplier != null){
tqq9_supplier = BusinessDataServiceHelper.loadSingle(tqq9_supplier.getPkValue(), tqq9_supplier.getDynamicObjectType().getName());
String tqq9_taxno = tqq9_supplier.getString("tqq9_taxno");//税号
String tqq9_prolicense = tqq9_supplier.getString("tqq9_prolicense");//医疗器械生产许可证号
String tqq9_saleno = tqq9_supplier.getString("tqq9_saleno");//医疗器械经营许可证号
String tqq9_recordoneno = tqq9_supplier.getString("tqq9_recordoneno");//第一类器械备案号
String tqq9_recordtwono = tqq9_supplier.getString("tqq9_recordtwono");//第二类器械备案号
String tqq9_safeno = tqq9_supplier.getString("tqq9_safeno");//安全许可证号
String tqq9_beautyno = tqq9_supplier.getString("tqq9_beautyno");//化妆品许可证
DynamicObjectCollection tqq9_clnentries = tqq9_supplier.getDynamicObjectCollection("tqq9_clnentry");//卫生许可证明细
List<ComboItem> comboItems = new ArrayList<>();
addItem(tqq9_taxno, comboItems);
addItem(tqq9_prolicense, comboItems);
addItem(tqq9_saleno, comboItems);
addItem(tqq9_recordoneno, comboItems);
addItem(tqq9_recordtwono, comboItems);
addItem(tqq9_safeno, comboItems);
addItem(tqq9_beautyno, comboItems);
for (DynamicObject entry : tqq9_clnentries) {
String tqq9_clnno = entry.getString("tqq9_clnno");
addItem(tqq9_clnno, comboItems);
}
comboEdit.setComboItems(comboItems);
}
}
private static void addItem(String value, List<ComboItem> comboItems) {
if(StringUtils.isNotBlank(value)){
ComboItem comboItem = new ComboItem();
comboItem.setCaption(new LocaleString(value));
comboItem.setValue(value);
comboItems.add(comboItem);
}
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if("tqq9_additem".equals(itemKey)){
DynamicObject tqq9_supplier = (DynamicObject) this.getModel().getValue("tqq9_supplier");
String tqq9_supno = (String) this.getModel().getValue("tqq9_supno");
if(tqq9_supplier != null && StringUtils.isNotBlank(tqq9_supno)){
DynamicObjectCollection entries = this.getModel().getDataEntity(true).getDynamicObjectCollection("tqq9_entry");
Set<Long> eSupIDSet = new HashSet<>();
if(entries != null && entries.size() > 0){
for (DynamicObject entry : entries) {
Long eSupID = entry.getDynamicObject("tqq9_e_supplier").getLong("id");
eSupIDSet.add(eSupID);
}
}
if(eSupIDSet.contains(tqq9_supplier.getLong("id"))){
this.getView().showTipNotification("已经添加过改厂家,不需要重复添加!");
}else{
DynamicObject entry = entries.addNew();
entry.set("tqq9_e_supplier", tqq9_supplier);
entry.set("tqq9_e_supno", tqq9_supno);
this.getModel().setValue("tqq9_supplier", null);
ComboEdit comboEdit = this.getControl("tqq9_supno");
comboEdit.setComboItems(null);
this.getView().updateView("tqq9_entry");
this.getView().updateView();
}
}else{
this.getView().showTipNotification("请选择生产商和对应的许可证号!");
}
}
}
}