各个单据保存生成二维码
This commit is contained in:
parent
4e240451f8
commit
689fc37144
@ -0,0 +1,87 @@
|
||||
package yem.wm.bd.qrcode.operation;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import yem.base.common.utils.DynamicObjectUtil;
|
||||
import yem.base.common.utils.QRCodeUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description 保存插件
|
||||
* 单据保存时,创建二维码,将生成的二维码地址赋值到【二维码】字段上
|
||||
* @Author: zhangh
|
||||
* @CreateTime: 2025-02-17 11:01
|
||||
*/
|
||||
public class CreacteORSaveOpPlugin extends AbstractOperationServicePlugIn {
|
||||
@Override
|
||||
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||
for (DynamicObject dataEntity : e.getDataEntities()) {
|
||||
getQRCodeValue(dataEntity);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dataEntity 单据实体
|
||||
* @return void
|
||||
* @Description: 【二维码】字段赋值
|
||||
* @function 功能
|
||||
* @purposes 生成二维码,将二维码的地址赋值到【二维码】上
|
||||
*/
|
||||
public void getQRCodeValue(DynamicObject dataEntity) {
|
||||
String name = dataEntity.getDataEntityType().getName();
|
||||
DynamicObject qrcide = queryQRVode(name);
|
||||
if (qrcide != null) {
|
||||
String qrCodeText = "";//二维码字段展示的内容
|
||||
DynamicObjectCollection configurationfield = qrcide.getDynamicObjectCollection("yem_configurationfield_e");//查询二维码配置表
|
||||
for (DynamicObject entry : configurationfield) {
|
||||
String fieldkey = entry.getString("yem_fieldkey");//获取配置表中的【配置字段标识】
|
||||
Object fieldValue = dataEntity.get(fieldkey);//获取值
|
||||
if (fieldValue instanceof DynamicObject) {//判断是否是DynamicObject类型,如果是,则获取名称
|
||||
DynamicObject fieldValueDy = (DynamicObject) fieldValue;
|
||||
qrCodeText = qrCodeText + fieldValueDy.getString("name");
|
||||
} else {
|
||||
qrCodeText = qrCodeText + fieldValue;
|
||||
}
|
||||
}
|
||||
String image = QRCodeUtil.createQRImage(qrCodeText, "jpg", 78);//获取二维码的地址
|
||||
dataEntity.set("yem_qrcodeap", image);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||
List<String> fieldKeys = e.getFieldKeys();
|
||||
String name = this.billEntityType.getName();
|
||||
DynamicObject qrcide = queryQRVode(name);
|
||||
if (qrcide != null) {
|
||||
DynamicObjectCollection configurationfield = qrcide.getDynamicObjectCollection("yem_configurationfield_e");
|
||||
List<String> fieldkey = configurationfield.stream().map(x -> x.getString("yem_fieldkey")).collect(Collectors.toList());
|
||||
fieldKeys.addAll(fieldkey);
|
||||
fieldKeys.add("yem_qrcodeap");//二维码字段
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name 单据标识
|
||||
* @return DynamicObject 返回《二维码配置表》实体
|
||||
* @Description: 查询《二维码配置表》
|
||||
* @function 功能
|
||||
* @purposes 多处查询此表
|
||||
*/
|
||||
public DynamicObject queryQRVode(String name) {
|
||||
String selectfields = DynamicObjectUtil.getSelectfields("yem_bd_qrcide", false);
|
||||
selectfields = DynamicObjectUtil.getEntrySelectfields(selectfields, "yem_bd_qrcide", "yem_configurationfield_e", false);
|
||||
DynamicObject qrcide = BusinessDataServiceHelper.loadSingle("yem_bd_qrcide", selectfields,
|
||||
new QFilter[]{new QFilter("yem_bill.number", QCP.equals, name),
|
||||
new QFilter("enable", QCP.equals, "1")});//查询《二维码配置表》
|
||||
return qrcide;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user