lc/lc123/cloud/app/plugin/form/pm/BaseDataPlugin.java

205 lines
12 KiB
Java
Raw Normal View History

2025-07-31 10:07:09 +00:00
package tqq9.lc123.cloud.app.plugin.form.pm;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
2025-07-31 10:07:09 +00:00
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 tqq9.lc123.cloud.app.plugin.utils.EntryFieldRefresher;
2025-07-31 10:07:09 +00:00
import java.util.EventObject;
/**
* 表单通用插件带出创建人部门许可证号
* 注册证号tqq9_registration
* 许可证号tqq9_licenseno
* 创建部门tqq9_dept
* 需保持一致
*/
public class BaseDataPlugin extends AbstractFormPlugin implements Plugin {
private final static Log logger = LogFactory.getLog(BaseDataPlugin.class);
2025-07-31 10:07:09 +00:00
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
IDataModel model = this.getModel();
DynamicObject dataEntity = model.getDataEntity();
DynamicObject creator = dataEntity.getDynamicObject("creator");
DynamicObject bos_user = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{new QFilter("id", QCP.equals, creator.getLong("id"))});
DynamicObjectCollection entryentity = bos_user.getDynamicObjectCollection("entryentity");
DynamicObject dept = null;
2025-07-31 10:07:09 +00:00
for (DynamicObject dynamicObject : entryentity) {
boolean ispartjob = dynamicObject.getBoolean("ispartjob");
if (!ispartjob) {
dept = dynamicObject.getDynamicObject("dpt");
2025-07-31 10:07:09 +00:00
}
}
model.setValue("tqq9_dept", dept);
2025-07-31 10:07:09 +00:00
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
2025-07-31 10:07:09 +00:00
super.propertyChanged(e);
String key = e.getProperty().getName();
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
int rowIndex = changeData.getRowIndex();
String name = this.getModel().getDataEntity(true).getDataEntityType().getName();
//排斥物料
if(!"bd_material".equals(name)){
if (StringUtils.equals("tqq9_registration", key)) {
StringBuilder stringBuilder_supno = new StringBuilder();
StringBuilder stringBuilder_supplier = new StringBuilder();
DynamicObject newValue = (DynamicObject) changeData.getNewValue();
if (newValue != null) {
//处理非医非消毒的问题
boolean isFyfxd = false;//是否 非医非消毒
String tqq9_scxkzh = null;//生产许可证号
String tqq9_sccsname = null;//生产厂商名称
handleFyfxd(rowIndex, isFyfxd, tqq9_scxkzh, tqq9_sccsname);//处理非医非消毒的内容
if(isFyfxd){
//非医非消毒 取物料上的生产厂商名称和许可证号
this.getModel().setValue("tqq9_licenseno", tqq9_scxkzh, rowIndex);
this.getModel().setValue("tqq9_cs", tqq9_sccsname, rowIndex);
}else{
String number = newValue.getString("number");
if (number.contains("#")) {
String[] numbers = number.split("#");
DynamicObject[] tqq9_registrations = BusinessDataServiceHelper.load("tqq9_registration",
"id,number,name,tqq9_entry.tqq9_e_supno,tqq9_entry.tqq9_e_supplier"
, new QFilter[]{new QFilter("number", QCP.in, numbers)});
for (DynamicObject tqq9_registration : tqq9_registrations) {
DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry");
for (DynamicObject entry : tqq9_entry) {
String supno = entry.getString("tqq9_e_supno");//许可证
DynamicObject tqq9_e_supplier = entry.getDynamicObject("tqq9_e_supplier");//生产商
if (StringUtils.isNotBlank(supno)) {
stringBuilder_supno.append("#").append(supno);
}
if (tqq9_e_supplier != null) {
stringBuilder_supplier.append("#").append(tqq9_e_supplier.getString("name"));
}
}
}
} else {
DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration", new QFilter[]{new QFilter("id", QCP.equals, newValue.getLong("id"))});
DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry");
for (DynamicObject entry : tqq9_entry) {
String supno = entry.getString("tqq9_e_supno");//许可证
DynamicObject tqq9_e_supplier = entry.getDynamicObject("tqq9_e_supplier");//生产商
if (StringUtils.isNotBlank(supno)) {
stringBuilder_supno.append("#").append(supno);
}
if (tqq9_e_supplier != null) {
stringBuilder_supplier.append("#").append(tqq9_e_supplier.getString("name"));
}
}
}
if (StringUtils.isNotBlank(stringBuilder_supno.toString())) {
String substring = stringBuilder_supno.substring(1);
this.getModel().setValue("tqq9_licenseno", substring, rowIndex);
}
if (StringUtils.isNotBlank(stringBuilder_supplier.toString())) {
String substring = stringBuilder_supplier.substring(1);
this.getModel().setValue("tqq9_cs", substring, rowIndex);
}
2025-11-24 09:51:17 +00:00
}
}
2025-07-31 10:07:09 +00:00
}
if (StringUtils.equals("tqq9_zczh", key)) {
StringBuilder stringBuilder_supno = new StringBuilder();
StringBuilder stringBuilder_supplier = new StringBuilder();
DynamicObject newValue = (DynamicObject) changeData.getNewValue();
if (newValue != null) {
//处理非医非消毒的问题
boolean isFyfxd = false;//是否 非医非消毒
String tqq9_scxkzh = null;//生产许可证号
String tqq9_sccsname = null;//生产厂商名称
handleFyfxd(rowIndex, isFyfxd, tqq9_scxkzh, tqq9_sccsname);//处理非医非消毒的内容
if(isFyfxd){
//非医非消毒 取物料上的生产厂商名称和许可证号
this.getModel().setValue("tqq9_licenseno", tqq9_scxkzh, rowIndex);
this.getModel().setValue("tqq9_cs", tqq9_sccsname, rowIndex);
}else{
String number = newValue.getString("number");
if (number.contains("#")) {
String[] numbers = number.split("#");
DynamicObject[] tqq9_registrations = BusinessDataServiceHelper.load("tqq9_registration",
"id,number,name,tqq9_entry.tqq9_e_supno,tqq9_entry.tqq9_e_supplier"
, new QFilter[]{new QFilter("number", QCP.in, numbers)});
for (DynamicObject tqq9_registration : tqq9_registrations) {
DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry");
for (DynamicObject entry : tqq9_entry) {
String supno = entry.getString("tqq9_e_supno");//许可证
DynamicObject tqq9_e_supplier = entry.getDynamicObject("tqq9_e_supplier");//生产商
if (StringUtils.isNotBlank(supno)) {
stringBuilder_supno.append("#").append(supno);
}
if (tqq9_e_supplier != null) {
stringBuilder_supplier.append("#").append(tqq9_e_supplier.getString("name"));
}
}
}
} else {
DynamicObject tqq9_registration = BusinessDataServiceHelper.loadSingle("tqq9_registration",
new QFilter[]{new QFilter("id", QCP.equals, newValue.getLong("id"))});
DynamicObjectCollection tqq9_entry = tqq9_registration.getDynamicObjectCollection("tqq9_entry");
for (DynamicObject entry : tqq9_entry) {
String supno = entry.getString("tqq9_e_supno");//许可证
DynamicObject tqq9_e_supplier = entry.getDynamicObject("tqq9_e_supplier");//生产商
if (StringUtils.isNotBlank(supno)) {
stringBuilder_supno.append("#").append(supno);
}
if (tqq9_e_supplier != null) {
stringBuilder_supplier.append("#").append(tqq9_e_supplier.getString("name"));
}
}
}
if (StringUtils.isNotBlank(stringBuilder_supno.toString())) {
String substring = stringBuilder_supno.substring(1);
this.getModel().setValue("tqq9_licenseno", substring, rowIndex);
}
if (StringUtils.isNotBlank(stringBuilder_supplier.toString())) {
String substring = stringBuilder_supplier.substring(1);
this.getModel().setValue("tqq9_cs", substring, rowIndex);
}
2025-11-24 09:51:17 +00:00
}
}
}
}
}
private void handleFyfxd(int rowIndex, boolean isFyfxd, String tqq9_scxkzh, String tqq9_sccsname) {
DynamicObject dataEntity = this.getModel().getDataEntity(true);
String entitName = dataEntity.getDataEntityType().getName();//单据标识
String mFieldName = EntryFieldRefresher.getEntryMaterialFieldNameByEntityName(entitName);
if(StringUtils.isNotBlank(mFieldName)){
DynamicObject material = (DynamicObject) this.getModel().getValue(mFieldName, rowIndex);
if(material != null){
Long materialId = material.getDynamicObject("masterid").getLong("id");
DynamicObject bd_material = BusinessDataServiceHelper.loadSingle(materialId, "bd_material");
String tqq9_ylfl = bd_material.getString("tqq9_ylfl");
if("非医非消毒".equals(tqq9_ylfl)){
isFyfxd = true;
DynamicObject tqq9_sccs = bd_material.getDynamicObject("tqq9_sccs");//生产厂商
if(tqq9_sccs != null){
tqq9_sccsname = tqq9_sccs.getString("name");
}
tqq9_scxkzh = bd_material.getString("tqq9_scxkzh");//生产许可证号
}
}
}
2025-07-31 10:07:09 +00:00
}
}