物料档案库存信息页签批次管理字段判断是否生成批次号

This commit is contained in:
lihao 2025-10-22 09:41:52 +08:00
parent 7c58413799
commit e5ebda0499
1 changed files with 32 additions and 1 deletions

View File

@ -10,6 +10,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.bs.framework.common.NCLocator;
import nc.bs.mmpac.pmo.pac0002.bp.PMOAdjustBP;
import nc.bs.mmpac.pmo.pac0002.bp.PMOApproveBP;
@ -31,6 +34,7 @@ import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckParentProcedureNoRule;
import nc.bs.trade.business.HYPubBO;
import nc.impl.pubapp.bd.userdef.UserDefSaveRule;
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
import nc.itf.bd.material.baseinfo.IMaterialBaseInfoQueryService;
import nc.itf.mmpac.pmo.pac0002.IPMOMaintainService;
import nc.itf.uap.rbac.IUserManageQuery_C;
import nc.jdbc.framework.generator.SequenceGenerator;
@ -45,6 +49,8 @@ import nc.util.mmf.framework.base.MMValueCheck;
import nc.util.mmf.framework.gc.GCBillTransferTool;
import nc.util.mmf.framework.gc.GCPseudoColUtil;
import nc.vo.bd.feature.ffile.entity.AggFFileVO;
import nc.vo.bd.material.MaterialVO;
import nc.vo.bd.material.stock.MaterialStockVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemMeasureParam;
@ -289,7 +295,9 @@ public class PMOMaintainServiceImpl implements IPMOMaintainService {
for (PMOAggVO vo : aggvos) {
for(PMOItemVO itemVO : vo.getChildrenVO()) {
if(itemVO.getPk_org().equals(org)) {
xbitemList.add(itemVO);
if(checkMaterial(itemVO.getCmaterialvid(),itemVO.getPk_org())){
xbitemList.add(itemVO);
}
}
}
}
@ -319,7 +327,30 @@ public class PMOMaintainServiceImpl implements IPMOMaintainService {
}
return MMArrayUtil.isEmpty(aggvos) ? null : (new PMOBPUtil()).fillVOInfo4AID(aggvos);
}
private boolean checkMaterial(String cmaterialid,String org) throws BusinessException {
// 根据物料档案库存信息页签批次管理字段判断是否生成批次号只有勾选批次管理的物料才生成生产批次号
MaterialVO[] vos = NCLocator.getInstance().lookup(IMaterialBaseInfoQueryService.class).queryDataByPks(new String[]{cmaterialid});
for (MaterialVO vo : vos) {
String whereSql = " pk_material='" + vo.getPk_material() + "' and pk_org='" + org + "' and nvl(dr,0)=0 ";
List<MaterialStockVO> list = null;
try {
list = (List<MaterialStockVO>) new BaseDAO().retrieveByClause(MaterialStockVO.class, whereSql);
} catch (DAOException e) {
e.printStackTrace();
}
if(!list.isEmpty()){
for (MaterialStockVO materialStockVO:list){
if(materialStockVO.getWholemanaflag().booleanValue()) {
return true;
}
}
}
}
return false;
}
public PMOAggVO[] fillVOInfo4KF(PMOAggVO[] aggvos) throws BusinessException {
if (MMArrayUtil.isEmpty(aggvos)) {
return null;