2025-08-13 09:23:35 +00:00
|
|
|
|
package tqq9.lc123.cloud.app.plugin.form.sys;
|
|
|
|
|
|
|
|
|
|
|
|
import kd.bos.bill.AbstractBillPlugIn;
|
2025-11-13 08:52:10 +00:00
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
2025-11-17 07:43:01 +00:00
|
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
2025-11-18 10:21:04 +00:00
|
|
|
|
import kd.bos.dataentity.entity.LocaleString;
|
2025-11-17 09:54:13 +00:00
|
|
|
|
import kd.bos.dataentity.metadata.IDataEntityProperty;
|
2025-11-29 09:24:48 +00:00
|
|
|
|
import kd.bos.dataentity.metadata.dynamicobject.DynamicProperty;
|
2025-11-13 08:52:10 +00:00
|
|
|
|
import kd.bos.dataentity.utils.StringUtils;
|
2025-11-29 09:24:48 +00:00
|
|
|
|
import kd.bos.entity.datamodel.ListSelectedRow;
|
|
|
|
|
|
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
2025-11-17 07:43:01 +00:00
|
|
|
|
import kd.bos.entity.datamodel.events.ChangeData;
|
|
|
|
|
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
2025-11-29 09:24:48 +00:00
|
|
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
|
|
|
|
import kd.bos.entity.property.MulBasedataProp;
|
|
|
|
|
|
import kd.bos.form.control.events.BeforeClickEvent;
|
|
|
|
|
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
2025-11-13 08:52:10 +00:00
|
|
|
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
2025-11-17 09:54:13 +00:00
|
|
|
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
|
|
|
|
|
import kd.bos.form.operate.FormOperate;
|
2025-11-17 07:43:01 +00:00
|
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
2025-11-29 09:24:48 +00:00
|
|
|
|
import kd.bos.servicehelper.MetadataServiceHelper;
|
2025-11-13 08:52:10 +00:00
|
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
2025-08-13 09:23:35 +00:00
|
|
|
|
|
2025-11-17 09:54:13 +00:00
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
import java.util.EventObject;
|
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
2025-08-13 09:23:35 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 物料界面插件
|
|
|
|
|
|
*/
|
|
|
|
|
|
public class MaterialBillPlugin extends AbstractBillPlugIn {
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-29 09:24:48 +00:00
|
|
|
|
@Override
|
|
|
|
|
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
|
|
|
|
|
super.beforeItemClick(evt);
|
|
|
|
|
|
String itemKey = evt.getItemKey();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("tqq9_copyandchange".equals(itemKey)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String number = (String) this.getModel().getValue("number");
|
|
|
|
|
|
String tqq9_srcnumber = (String) this.getModel().getValue("tqq9_srcnumber");
|
|
|
|
|
|
String status = (String) this.getModel().getValue("status");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (!"C".equals(status)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
evt.setCancel(true);
|
|
|
|
|
|
this.getView().showTipNotification("当前物料不是已审核状态,不允许复制变更!");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
QFilter f = new QFilter("tqq9_srcnumber", "=", number);
|
|
|
|
|
|
DynamicObject[] materialArr = BusinessDataServiceHelper.load("bd_material", "id", new QFilter[]{f});
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (materialArr != null && materialArr.length > 0) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
this.getView().showTipNotification("当前物料已经存在变更信息,不允许复制变更!");
|
|
|
|
|
|
evt.setCancel(true);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(tqq9_srcnumber)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
this.getView().showTipNotification("当前物料为其他物料的变更信息,不允许复制变更!");
|
|
|
|
|
|
evt.setCancel(true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-17 09:54:13 +00:00
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
|
|
|
|
|
super.beforeDoOperation(args);
|
|
|
|
|
|
FormOperate source = (FormOperate) args.getSource();
|
|
|
|
|
|
String operateKey = source.getOperateKey();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("submit".equals(operateKey)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
//复制后修改数据在提交时记录修改的内容,如果修改内容为空,则不记录
|
|
|
|
|
|
LinkedHashMap changeMap = new LinkedHashMap();
|
2025-11-18 10:13:08 +00:00
|
|
|
|
StringBuilder changeContent = new StringBuilder();
|
2025-11-29 09:24:48 +00:00
|
|
|
|
StringBuilder changeFields = new StringBuilder();
|
2025-11-17 09:54:13 +00:00
|
|
|
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String tqq9_srcnumber = dataEntity.getString("tqq9_srcnumber");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (StringUtils.isNotBlank(tqq9_srcnumber)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
//查询原单
|
2025-11-29 09:24:48 +00:00
|
|
|
|
QFilter qFilter = new QFilter("number", "=", tqq9_srcnumber);
|
2025-11-17 09:54:13 +00:00
|
|
|
|
DynamicObject[] srcMaterialArr = BusinessDataServiceHelper.load("bd_material", "id", new QFilter[]{qFilter});
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (srcMaterialArr != null && srcMaterialArr.length > 0) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
DynamicObject srcMaterial = srcMaterialArr[0];
|
|
|
|
|
|
srcMaterial = BusinessDataServiceHelper.loadSingle(srcMaterial.getPkValue(), "bd_material");
|
|
|
|
|
|
//获取实体中所有变更的属性
|
|
|
|
|
|
List<IDataEntityProperty> iDataEntityProperties = dataEntity.getDataEntityState().GetDirtyProperties();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (iDataEntityProperties.size() > 0) {
|
|
|
|
|
|
for (IDataEntityProperty prop : iDataEntityProperties) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
String name = prop.getName();//字段标识
|
2025-12-05 02:39:53 +00:00
|
|
|
|
if ("status".equals(name) || "useorg".equals(name) || "modifytime".equals(name) || "tqq9_changereason".equals(name)) {
|
2025-11-18 10:13:08 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
LocaleString displayNameLocaleStr = prop.getDisplayName();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (displayNameLocaleStr == null) {
|
2025-11-18 10:13:08 +00:00
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
String displayName = displayNameLocaleStr.get("zh_CN");//字段名称
|
2025-11-17 09:54:13 +00:00
|
|
|
|
String propTypeName = prop.getPropertyType().getName();
|
2025-11-29 09:24:48 +00:00
|
|
|
|
DynamicProperty property = MetadataServiceHelper.getDataEntityType("bd_material").getProperty(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("kd.bos.dataentity.entity.DynamicObject".equals(propTypeName)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String aClass = MetadataServiceHelper.getDataEntityType("bd_material").getProperty(name).getClass().getName();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("kd.bos.entity.property.MulBasedataProp".equals(aClass)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
//多选 基础资料
|
|
|
|
|
|
String selectFields = "name";
|
|
|
|
|
|
String baseEntityId = ((MulBasedataProp) prop).getBaseEntityId();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("bd_operator".equals(baseEntityId)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
selectFields = "operatorname";
|
|
|
|
|
|
}
|
|
|
|
|
|
DynamicObjectCollection dynamicObjectColl = dataEntity.getDynamicObjectCollection(name);
|
|
|
|
|
|
DynamicObjectCollection dynamicObjectColl1 = srcMaterial.getDynamicObjectCollection(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (dynamicObjectColl != null && dynamicObjectColl.size() > 0) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String newValue = "";
|
|
|
|
|
|
for (DynamicObject dynamicObject : dynamicObjectColl) {
|
|
|
|
|
|
long id = dynamicObject.getLong("fbasedataid_id");
|
|
|
|
|
|
DynamicObject obj = BusinessDataServiceHelper.loadSingle(id, baseEntityId, selectFields);
|
|
|
|
|
|
String objName = obj.getString(selectFields);
|
|
|
|
|
|
newValue = newValue + "," + objName;
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (dynamicObjectColl1 != null && dynamicObjectColl1.size() > 0) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String oldValue = "";
|
|
|
|
|
|
for (DynamicObject dynamicObject1 : dynamicObjectColl1) {
|
|
|
|
|
|
long id = dynamicObject1.getLong("fbasedataid_id");
|
|
|
|
|
|
DynamicObject obj = BusinessDataServiceHelper.loadSingle(id, baseEntityId, selectFields);
|
|
|
|
|
|
String objName = obj.getString(selectFields);
|
|
|
|
|
|
oldValue = oldValue + "," + objName;
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (!oldValue.equals(newValue)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
// changeContent.append("字段:" + displayName + "(" + name + "),变更前:" + oldValue.substring(1) + ",变更后:" + newValue.substring(1) + ";");
|
|
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue.substring(1) + ",变更后:" + newValue.substring(1) + ";");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue.substring(1) + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (dynamicObjectColl1 != null && dynamicObjectColl1.size() > 0) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String oldValue = "";
|
|
|
|
|
|
for (DynamicObject dynamicObject1 : dynamicObjectColl1) {
|
|
|
|
|
|
long id = dynamicObject1.getLong("fbasedataid_id");
|
|
|
|
|
|
DynamicObject obj = BusinessDataServiceHelper.loadSingle(id, baseEntityId, "id,name,number");
|
|
|
|
|
|
String objName = obj.getString("name");
|
|
|
|
|
|
oldValue = oldValue + "," + objName;
|
|
|
|
|
|
}
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue.substring(1) + ",变更后:空;");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
}
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
//基础资料
|
|
|
|
|
|
DynamicObject dynamicObject = dataEntity.getDynamicObject(name);
|
|
|
|
|
|
DynamicObject dynamicObject1 = srcMaterial.getDynamicObject(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (dynamicObject != null) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String newValue = dynamicObject.getString("name");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (dynamicObject1 != null) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String oldValue = dynamicObject1.getString("name");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (!oldValue.equals(newValue)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (dynamicObject1 != null) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
String oldValue = dynamicObject1.getString("name");
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
|
|
|
|
|
}
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else if ("java.util.Date".equals(propTypeName)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
Date newValue = dataEntity.getDate(name);
|
|
|
|
|
|
Date oldValue = srcMaterial.getDate(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != null) {
|
|
|
|
|
|
if (oldValue != null) {
|
|
|
|
|
|
if (!oldValue.equals(newValue)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (oldValue != null) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else if ("java.lang.Integer".equals(propTypeName)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
int newValue = dataEntity.getInt(name);
|
|
|
|
|
|
int oldValue = srcMaterial.getInt(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != oldValue) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else if ("java.lang.Long".equals(propTypeName)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
long newValue = dataEntity.getLong(name);
|
|
|
|
|
|
long oldValue = srcMaterial.getLong(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != oldValue) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else if ("java.math.BigDecimal".equals(propTypeName)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
BigDecimal newValue = dataEntity.getBigDecimal(name);
|
|
|
|
|
|
BigDecimal oldValue = srcMaterial.getBigDecimal(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != null) {
|
|
|
|
|
|
if (oldValue != null) {
|
|
|
|
|
|
if (oldValue.compareTo(newValue) != 0) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (oldValue != null) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else if ("boolean".equals(propTypeName)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
boolean newValue = dataEntity.getBoolean(name);
|
|
|
|
|
|
boolean oldValue = srcMaterial.getBoolean(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != oldValue) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
String newValue = dataEntity.getString(name);
|
|
|
|
|
|
String oldValue = srcMaterial.getString(name);
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (StringUtils.isNotBlank(newValue)) {
|
|
|
|
|
|
if ("name".equals(name)) {
|
|
|
|
|
|
newValue = newValue.replaceAll("_copy", "");
|
2025-11-29 09:24:48 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (StringUtils.isNotBlank(oldValue)) {
|
|
|
|
|
|
if (!oldValue.equals(newValue)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:空,变更后:" + newValue + ";");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
if (StringUtils.isNotBlank(oldValue)) {
|
2025-11-29 09:24:48 +00:00
|
|
|
|
changeFields.append(",").append(name);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
changeContent.append("字段:" + displayName + ",变更前:" + oldValue + ",变更后:空;");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
changeMap.put(name, displayName);
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//获取单据体中已变更的属性
|
2025-11-29 09:24:48 +00:00
|
|
|
|
// DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("entry_groupstandard");
|
|
|
|
|
|
// for(int x = 0; x < entryentity.size(); x++){
|
|
|
|
|
|
// DynamicObject entry = entryentity.get(x);
|
|
|
|
|
|
// List<IDataEntityProperty> iDataEntityProperties1 = entryentity.get(x).getDataEntityState().GetDirtyProperties();
|
|
|
|
|
|
// for(IDataEntityProperty prop :iDataEntityProperties1){
|
|
|
|
|
|
// String name = prop.getName();
|
|
|
|
|
|
// String propTypeName = prop.getPropertyType().getName();
|
|
|
|
|
|
// LocaleString displayNameLocaleStr = prop.getDisplayName();
|
|
|
|
|
|
// if(displayNameLocaleStr == null){
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
// }
|
|
|
|
|
|
// LocaleString displayName1 = prop.getDisplayName();
|
|
|
|
|
|
// changeMap.put("entry_groupstandard-"+(x+1)+":"+name,displayName1);
|
|
|
|
|
|
// if("kd.bos.dataentity.entity.DynamicObject".equals(propTypeName)){
|
|
|
|
|
|
// DynamicObject dynamicObject = entry.getDynamicObject(name);
|
|
|
|
|
|
// }else if("java.util.Date".equals(propTypeName)){
|
|
|
|
|
|
// Date date = entry.getDate(name);
|
|
|
|
|
|
// }else if("java.lang.Integer".equals(propTypeName)){
|
|
|
|
|
|
// int anInt = entry.getInt(name);
|
|
|
|
|
|
// }else if("java.lang.Long".equals(propTypeName)){
|
|
|
|
|
|
// Long aLong = entry.getLong(name);
|
|
|
|
|
|
// }else if("java.math.BigDecimal".equals(propTypeName)){
|
|
|
|
|
|
// BigDecimal bigDecimal = entry.getBigDecimal(name);
|
|
|
|
|
|
// }else if("boolean".equals(propTypeName)){
|
|
|
|
|
|
// boolean aBoolean = entry.getBoolean(name);
|
|
|
|
|
|
// }else {
|
|
|
|
|
|
// String string = entry.getString(name);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// System.out.println("单据已变更的数据是:"+changeMap);
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (StringUtils.isNotBlank(changeContent.toString())) {
|
2025-11-18 10:13:08 +00:00
|
|
|
|
this.getModel().setValue("tqq9_changeinfo_tag", changeContent);
|
2025-11-29 09:24:48 +00:00
|
|
|
|
this.getModel().setValue("tqq9_changefields_tag", changeFields.substring(1));
|
2025-12-05 08:24:57 +00:00
|
|
|
|
this.getModel().setValue("tqq9_issuccess", true);
|
2025-11-18 10:13:08 +00:00
|
|
|
|
}
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("copyandchange".equals(operateKey)) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
super.beforeDoOperation(args);
|
2025-12-01 10:51:41 +00:00
|
|
|
|
this.getPageCache().put("copyMatId", this.getModel().getValue("id").toString());
|
2025-11-17 09:54:13 +00:00
|
|
|
|
FormOperate operate = (FormOperate) args.getSource();
|
|
|
|
|
|
String operateNo = operate.getOperateKey();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (operateNo.equalsIgnoreCase("copyandchange")) {
|
2025-11-17 09:54:13 +00:00
|
|
|
|
DynamicObject bill = this.getModel().getDataEntity();
|
2025-11-29 09:24:48 +00:00
|
|
|
|
this.getView().getFormShowParameter().setCustomParam("copySrcBillName", bill.getString("name"));
|
|
|
|
|
|
this.getView().getFormShowParameter().setCustomParam("copySrcBillNumber", bill.getString("number"));
|
2025-12-09 10:34:29 +00:00
|
|
|
|
this.getView().getFormShowParameter().setCustomParam("tqq9_fwrequestid", bill.getString("tqq9_fwrequestid"));
|
2025-12-01 10:51:41 +00:00
|
|
|
|
this.getView().getFormShowParameter().setCustomParam("operateKey", "copyandchange");
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-13 08:52:10 +00:00
|
|
|
|
@Override
|
2025-11-17 09:54:13 +00:00
|
|
|
|
public void afterCopyData(EventObject e) {
|
|
|
|
|
|
super.afterCopyData(e);
|
2025-12-01 10:51:41 +00:00
|
|
|
|
String operateKey = this.getView().getFormShowParameter().getCustomParam("operateKey");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("copyandchange".equals(operateKey)) {
|
2025-12-01 10:51:41 +00:00
|
|
|
|
String copySrcBillName = this.getView().getFormShowParameter().getCustomParam("copySrcBillName");
|
|
|
|
|
|
String copySrcBillNumber = this.getView().getFormShowParameter().getCustomParam("copySrcBillNumber");
|
2025-12-09 10:34:29 +00:00
|
|
|
|
String tqq9_fwrequestid = this.getView().getFormShowParameter().getCustomParam("tqq9_fwrequestid");
|
2025-12-01 10:51:41 +00:00
|
|
|
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
2025-12-05 02:39:53 +00:00
|
|
|
|
dataEntity.set("number", copySrcBillNumber + "_copy");
|
2025-12-05 09:37:54 +00:00
|
|
|
|
dataEntity.set("name", copySrcBillName + "_copy");
|
2025-12-01 10:51:41 +00:00
|
|
|
|
dataEntity.set("tqq9_srcnumber", copySrcBillNumber);
|
2025-12-08 03:18:01 +00:00
|
|
|
|
dataEntity.set("tqq9_isfirst", false);
|
2025-12-09 10:34:29 +00:00
|
|
|
|
dataEntity.set("tqq9_fwrequestid", tqq9_fwrequestid);
|
2025-12-01 10:51:41 +00:00
|
|
|
|
this.getView().invokeOperation("save");
|
|
|
|
|
|
}
|
2025-11-17 09:54:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-29 09:24:48 +00:00
|
|
|
|
public void afterDoOperation(AfterDoOperationEventArgs evt) {
|
|
|
|
|
|
super.afterDoOperation(evt);
|
|
|
|
|
|
String operateKey = evt.getOperateKey();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (StringUtils.equals("submit", operateKey)) {
|
|
|
|
|
|
getModel().setValue("tqq9_isfirst", false);
|
2025-11-13 08:52:10 +00:00
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity()});
|
2025-08-13 09:23:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-11-17 07:43:01 +00:00
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void propertyChanged(PropertyChangedArgs e) {
|
|
|
|
|
|
super.propertyChanged(e);
|
|
|
|
|
|
String name = e.getProperty().getName();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if ("tqq9_brand".equals(name)) {
|
2025-11-17 07:43:01 +00:00
|
|
|
|
ChangeData changeData = e.getChangeSet()[0];
|
|
|
|
|
|
Object newValue = changeData.getNewValue();
|
2025-12-03 07:22:48 +00:00
|
|
|
|
if (newValue != null) {
|
2025-11-17 07:43:01 +00:00
|
|
|
|
DynamicObject newValue1 = (DynamicObject) newValue;
|
2025-12-03 07:22:48 +00:00
|
|
|
|
DynamicObject tqq9_brand = BusinessDataServiceHelper.loadSingle("tqq9_brand", new QFilter[]{new QFilter("id", QCP.in, newValue1.getLong("id"))});
|
2025-11-17 07:43:01 +00:00
|
|
|
|
DynamicObjectCollection tqq9_shcg = tqq9_brand.getDynamicObjectCollection("tqq9_shcg");
|
|
|
|
|
|
DynamicObjectCollection tqq9_bjcg = tqq9_brand.getDynamicObjectCollection("tqq9_bjcg");
|
|
|
|
|
|
DynamicObjectCollection tqq9_gzcg = tqq9_brand.getDynamicObjectCollection("tqq9_gzcg");
|
2025-12-03 07:22:48 +00:00
|
|
|
|
getModel().setValue("tqq9_shcg", tqq9_shcg);
|
|
|
|
|
|
getModel().setValue("tqq9_bjcg", tqq9_bjcg);
|
|
|
|
|
|
getModel().setValue("tqq9_gzcg", tqq9_gzcg);
|
2025-11-17 07:43:01 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-08-13 09:23:35 +00:00
|
|
|
|
}
|