物料保存关闭类、物料审核后 修改审核人、修改人为待审批人类 提交

This commit is contained in:
pan-houxiang 2025-12-10 11:29:20 +08:00
parent 5f571ca997
commit f76ab6753b
3 changed files with 110 additions and 33 deletions

View File

@ -0,0 +1,39 @@
package tqq9.lc123.cloud.app.plugin.form.sys;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.form.IFormView;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.operate.FormOperate;
import kd.sdk.plugin.Plugin;
/**
* 单据界面插件
*/
public class MaterialSaveClosePlugin extends AbstractBillPlugIn implements Plugin {
@Override
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
super.beforeDoOperation(args);
// FormOperate operation = (FormOperate) args.getSource();
// String key = operation.getOperateKey();
// if (StringUtils.equals("save", key)) {
// args.setCancel(Boolean.TRUE);
// // 弹出操作成功提示消息
// boolean showInParentView = true;
// IFormView view = this.getView().getViewNoPlugin(this.getView().getFormShowParameter().getParentPageId());
// if (view == null) {
// view = this.getView();
// showInParentView = false;
// }
// view.showSuccessNotification(String.format(ResManager.loadKDString("保存成功", "DefaultEntityOperate_5", "bos-entity-business", new Object[0]), operation.getOperateName().toString()));
// if (showInParentView) {
// this.getView().sendFormAction(view);
// }
//
// this.getModel().setDataChanged(Boolean.FALSE);
// // 关闭新增窗口
// this.getView().close();
// }
}
}

View File

@ -20,7 +20,7 @@ import java.util.List;
/**
* 物料审核操作
* 审核成功后生成对应的商城商品
* 审核成功后生成对应的商城商品
*/
public class MaterialAuditOp extends AbstractOperationServicePlugIn {
@ -30,19 +30,28 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn {
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
OperationResult operationResult = this.getOperationResult();
if (operationResult.isSuccess()){
if (operationResult.isSuccess()) {
DynamicObject[] dataEntities = e.getDataEntities();
for (DynamicObject material : dataEntities) {
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), "bd_material");
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName());
// DynamicObject tqq9_audit = material.getDynamicObject("tqq9_auditor");
// QFilter qf = new QFilter("id", "=", tqq9_audit.getPkValue());
// DynamicObject tqq9_auditor = BusinessDataServiceHelper.loadSingle("bos_user", new QFilter[]{qf});
// //将待审批人赋值给修改人审核人
// if (tqq9_auditor != null) {
// material.set("modifier", tqq9_auditor);
// material.set("approverid", tqq9_auditor);
// SaveServiceHelper.save(new DynamicObject[]{material});
// }
String tqq9_srcnumber = material.getString("tqq9_srcnumber");
//查询是否有源单编码如果有就是物料变更如果没有就是正常物料审核
if(StringUtils.isNotBlank(tqq9_srcnumber)){
if (StringUtils.isNotBlank(tqq9_srcnumber)) {
//物料变更逻辑
String tqq9_changefields = material.getString("tqq9_changefields_tag");
if(StringUtils.isNotBlank(tqq9_changefields)){
if (StringUtils.isNotBlank(tqq9_changefields)) {
QFilter f = new QFilter("number", "=", tqq9_srcnumber);
boolean exists = QueryServiceHelper.exists("bd_material", new QFilter[]{f});
if(exists){
if (exists) {
DynamicObject srcMaterial = BusinessDataServiceHelper.loadSingle("bd_material", new QFilter[]{f});
String[] fieldArr = tqq9_changefields.split(",");
for (String changeField : fieldArr) {
@ -50,24 +59,24 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn {
}
SaveServiceHelper.save(new DynamicObject[]{srcMaterial});
OperationResult opResult = OperationServiceHelper.executeOperate("unaudit", "bd_material", new DynamicObject[]{material}, OperateOption.create());
log.info("反审核物料修改信息["+material.getString("number")+"]的结果:"+opResult.isSuccess());
if(opResult.isSuccess()){
log.info("反审核物料修改信息[" + material.getString("number") + "]的结果:" + opResult.isSuccess());
if (opResult.isSuccess()) {
opResult = OperationServiceHelper.executeOperate("delete", "bd_material", new DynamicObject[]{material}, OperateOption.create());
log.info("删除物料修改信息["+material.getString("number")+"]的结果:"+opResult.isSuccess());
log.info("删除物料修改信息[" + material.getString("number") + "]的结果:" + opResult.isSuccess());
}
}
}
}else{
} else {
//物料新增审核封装商品逻辑查询对应的商品是否存在
DynamicObject goods;
Long materialID = material.getLong("id");
QFilter f = new QFilter("tqq9_mater.id", "=", materialID);
DynamicObject[] goodsArr = BusinessDataServiceHelper.load("tqq9_goodspackage", "id", new QFilter[]{f});
if (goodsArr != null && goodsArr.length > 0){
if (goodsArr != null && goodsArr.length > 0) {
goods = goodsArr[0];
goods = BusinessDataServiceHelper.loadSingle(goods.getPkValue(), goods.getDynamicObjectType().getName());
}else {
} else {
goods = BusinessDataServiceHelper.newDynamicObject("tqq9_goodspackage");
goods.set("number", material.getString("number"));
goods.set("tqq9_mater", material);
@ -76,21 +85,21 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn {
DynamicObject createorg = null;
f = new QFilter("number", "=", "LICHI");
DynamicObject[] orgArr = BusinessDataServiceHelper.load("bos_org", "id,name,number", new QFilter[]{f});
if(orgArr != null && orgArr.length > 0){
if (orgArr != null && orgArr.length > 0) {
createorg = orgArr[0];
}
//币种-默认CNY
DynamicObject currency = null;
f = new QFilter("number", "=", "CNY");
DynamicObject[] currencyArr = BusinessDataServiceHelper.load("bd_currency", "id,name,number", new QFilter[]{f});
if(currencyArr != null && currencyArr.length > 0){
if (currencyArr != null && currencyArr.length > 0) {
currency = currencyArr[0];
}
//查询税率和税率基础资料
DynamicObject tqq9_ssbm = material.getDynamicObject("tqq9_ssbm");
tqq9_ssbm = BusinessDataServiceHelper.loadSingle(tqq9_ssbm.getPkValue(), tqq9_ssbm.getDynamicObjectType().getName(),"id,name,number,taxrate");
tqq9_ssbm = BusinessDataServiceHelper.loadSingle(tqq9_ssbm.getPkValue(), tqq9_ssbm.getDynamicObjectType().getName(), "id,name,number,taxrate");
BigDecimal taxrate = tqq9_ssbm.getBigDecimal("taxrate");
if(taxrate != null){
if (taxrate != null) {
goods.set("tqq9_saletaxdcm", taxrate);
QFilter f1 = new QFilter("taxrate", "=", taxrate.multiply(new BigDecimal(100)));
DynamicObject[] bd_taxratesArr = BusinessDataServiceHelper.load("bd_taxrate", "id,number,name,taxrate", new QFilter[]{f1});
@ -120,41 +129,41 @@ public class MaterialAuditOp extends AbstractOperationServicePlugIn {
goods.set("tqq9_isauto", true);
goods.set("enable", "1");
goods.set("status", "A");
goods.set("creator",material.getDynamicObject("creator"));
goods.set("createtime",material.getDate("createtime"));
goods.set("modifier",material.getDynamicObject("modifier"));
goods.set("modifytime",material.getDate("modifytime"));
goods.set("creator", material.getDynamicObject("creator"));
goods.set("createtime", material.getDate("createtime"));
goods.set("modifier", material.getDynamicObject("modifier"));
goods.set("modifytime", material.getDate("modifytime"));
operationResult = OperationServiceHelper.executeOperate("save",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(!operationResult.isSuccess()){
log.info("物料["+material.getString("number")+"]审核封装商品保存出错msg"+operationResult.getMessage());
if (!operationResult.isSuccess()) {
log.info("物料[" + material.getString("number") + "]审核封装商品保存出错msg" + operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品保存出错:"+message);
log.info("物料[" + material.getString("number") + "]审核封装商品保存出错:" + message);
}
}else{
} else {
operationResult = OperationServiceHelper.executeOperate("submit",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(operationResult.isSuccess()){
if (operationResult.isSuccess()) {
operationResult = OperationServiceHelper.executeOperate("audit",
"tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
if(operationResult.isSuccess()){
log.info("物料["+material.getString("number")+"]审核封装商品审核成功。");
}else{
log.info("物料["+material.getString("number")+"]审核封装商品审核出错msg"+operationResult.getMessage());
if (operationResult.isSuccess()) {
log.info("物料[" + material.getString("number") + "]审核封装商品审核成功。");
} else {
log.info("物料[" + material.getString("number") + "]审核封装商品审核出错msg" + operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品审核出错:"+message);
log.info("物料[" + material.getString("number") + "]审核封装商品审核出错:" + message);
}
}
}else{
log.info("物料["+material.getString("number")+"]审核封装商品提交出错msg"+operationResult.getMessage());
} else {
log.info("物料[" + material.getString("number") + "]审核封装商品提交出错msg" + operationResult.getMessage());
List<IOperateInfo> allErrorOrValidateInfo = operationResult.getAllErrorOrValidateInfo();
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
String message = iOperateInfo.getMessage();
log.info("物料["+material.getString("number")+"]审核封装商品提交出错:"+message);
log.info("物料[" + material.getString("number") + "]审核封装商品提交出错:" + message);
}
}
}

View File

@ -0,0 +1,29 @@
package tqq9.lc123.cloud.app.plugin.operate.sys;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
/**
* 单据操作插件
* 审核后 修改审核人修改人为待审批人
*/
public class MaterialAuditOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
@Override
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
super.afterExecuteOperationTransaction(e);
DynamicObject[] dataEntities = e.getDataEntities();
for (DynamicObject material : dataEntities) {
material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), material.getDynamicObjectType().getName());
DynamicObject tqq9_auditor = material.getDynamicObject("tqq9_auditor");
if (tqq9_auditor != null) {
material.set("modifier", tqq9_auditor);
material.set("approverid", tqq9_auditor);
SaveServiceHelper.save(new DynamicObject[]{material});
}
}
}
}