This commit is contained in:
xuhaihui 2025-10-24 17:04:56 +08:00
parent b4f0ce50d9
commit 2deeee51cb
2 changed files with 67 additions and 51 deletions

View File

@ -15,6 +15,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.resource.ResManager;
@ -43,6 +44,10 @@ import kd.ec.material.opplugin.validator.InvAdjustBillExistValidator;
import kd.ec.material.opplugin.validator.MaterialInBillValidator;
import org.apache.commons.collections4.CollectionUtils;
/**
* 入库单保存提交撤销审核反审核操作插件系统代码二开
* 说明1审核生成即时库存第一单中的单价与后续更新即时库存的单价不一致修改了第一单单价的逻辑
*/
public class MaterialInBillOpExt extends AbstractOperationServicePlugIn {
private static final String ecco_mainmatcost = "ecco_mainmatcost";
private static final String ecco_sporadicmatcost = "ecco_sporadicmatcost";
@ -522,13 +527,15 @@ public class MaterialInBillOpExt extends AbstractOperationServicePlugIn {
String result = "success";
if ("REDUCE".equals(type)) {
if (isSubmit) {
String msg1 = MaterialInventoryUtils.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));
// String msg1 = MaterialInventoryUtils.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));//系统源码
String msg1 = MaterialInventoryUtilsExt2.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]));//二开替代
if (!"success".equals(msg1)) {
return msg1;
}
}
result = MaterialInventoryUtils.matBalanceLocked(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isLock);
// result = MaterialInventoryUtils.matBalanceLocked(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isLock);//系统源码
result = MaterialInventoryUtilsExt2.matBalanceLocked(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]), isLock);//二开替代
}
return result;
@ -566,17 +573,20 @@ public class MaterialInBillOpExt extends AbstractOperationServicePlugIn {
String type = transType.getString("type");
if ("INCREASE".equals(type)) {
if (!isAudit) {
String msg1 = MaterialInventoryUtils.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));
// String msg1 = MaterialInventoryUtils.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));//系统源码
String msg1 = MaterialInventoryUtilsExt2.checkMatAsOut(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]));//二开替代
if (!"success".equals(msg1)) {
result = String.format(ResManager.loadKDString("反审核失败。%s", "MaterialInBillOp_7", "ec-ecma-opplugin", new Object[0]), msg1);
return result;
}
}
MaterialInventoryUtils.matBalanceUpdate(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isAudit, exchangerate);
// MaterialInventoryUtils.matBalanceUpdate(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isAudit, exchangerate);//系统源码
MaterialInventoryUtilsExt2.matBalanceUpdate(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]), isAudit, exchangerate);//二开替代
} else if ("REDUCE".equals(type)) {
if (isAudit) {
String msg1 = MaterialInventoryUtils.checkInventoryQty(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));
// String msg1 = MaterialInventoryUtils.checkInventoryQty(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]));//系统源码
String msg1 = MaterialInventoryUtilsExt2.checkInventoryQty(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]));//二开替代
if (!"success".equals(msg1)) {
result = String.format(ResManager.loadKDString("审核失败。%s", "MaterialInBillOp_8", "ec-ecma-opplugin", new Object[0]), msg1);
return result;
@ -584,7 +594,8 @@ public class MaterialInBillOpExt extends AbstractOperationServicePlugIn {
}
boolean isAdd = !isAudit;
MaterialInventoryUtils.matBalanceLockAndUpdate(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isAdd, exchangerate, false);
// MaterialInventoryUtils.matBalanceLockAndUpdate(orgId, projectId, warehouseId, (DynamicObject[])entryCol.toArray(new DynamicObject[entryCol.size()]), isAdd, exchangerate, false);//系统源码
MaterialInventoryUtilsExt2.matBalanceLockAndUpdate(orgId, projectId, warehouseId, (DynamicObject[]) entryCol.toArray(new DynamicObject[entryCol.size()]), isAdd, exchangerate, false);//二开替代
}
return result;

View File

@ -13,6 +13,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
import kd.bos.dataentity.resource.ResManager;
@ -30,6 +31,10 @@ import kd.ec.basedata.common.utils.CurrencyHelper;
import kd.ec.basedata.common.utils.EcNumberHelper;
import kd.ec.material.common.utils.MaterialInventoryUtils;
/**
* 入库单MaterialInBillOpExt二开插件的方法类
* 说明1审核生成即时库存第一单中的单价与后续更新即时库存的单价不一致修改了第一单单价的逻辑
*/
public class MaterialInventoryUtilsExt2 {
private static final Log log = LogFactory.getLog(MaterialInventoryUtils.class);
public static final DynamicObjectType matInvDT = EntityMetadataCache.getDataEntityType("ecma_matinventory");