负计划(到货单保存校验最终需求数量)
This commit is contained in:
parent
c2d403c9ba
commit
509fab347d
|
|
@ -30,6 +30,7 @@ import nc.vo.pub.BusinessException;
|
||||||
import nc.vo.pub.compiler.PfParameterVO;
|
import nc.vo.pub.compiler.PfParameterVO;
|
||||||
import nc.vo.pub.lang.UFBoolean;
|
import nc.vo.pub.lang.UFBoolean;
|
||||||
import nc.vo.pub.lang.UFDateTime;
|
import nc.vo.pub.lang.UFDateTime;
|
||||||
|
import nc.vo.pub.lang.UFDouble;
|
||||||
import nc.vo.scmpub.util.ArrayUtil;
|
import nc.vo.scmpub.util.ArrayUtil;
|
||||||
import nc.vo.scmpub.util.BillBodySortUtils;
|
import nc.vo.scmpub.util.BillBodySortUtils;
|
||||||
import nc.vo.scmpub.util.TransferSortUtil;
|
import nc.vo.scmpub.util.TransferSortUtil;
|
||||||
|
|
@ -163,9 +164,9 @@ public class TransferOrderAction implements ICommonAction {
|
||||||
|
|
||||||
for (OrderVO vo : sorceVOs) {
|
for (OrderVO vo : sorceVOs) {
|
||||||
for (OrderItemVO itemVO:vo.getBVO()){
|
for (OrderItemVO itemVO:vo.getBVO()){
|
||||||
if(null != itemVO.getAttributeValue("vbdef33") && itemVO.getNastnum().compareTo(itemVO.getAttributeValue("vbdef33"))<0){
|
// if(null != itemVO.getAttributeValue("vbdef33") && itemVO.getNastnum().compareTo(new UFDouble(String.valueOf(itemVO.getAttributeValue("vbdef33"))))>0){
|
||||||
throw new BusinessException("采购数量大于最终需求数量不能生成采购订单!");
|
// throw new BusinessException("采购数量大于最终需求数量不能生成采购订单!");
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AggregatedValueObject[] arrivos = service.runChangeDataAry("21", "23", sorceVOs, (PfParameterVO)null);
|
AggregatedValueObject[] arrivos = service.runChangeDataAry("21", "23", sorceVOs, (PfParameterVO)null);
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ package nc.impl.pu.m23.maintain.action;
|
||||||
import nc.bs.pu.m23.maintain.ArriveInsertBP;
|
import nc.bs.pu.m23.maintain.ArriveInsertBP;
|
||||||
import nc.bs.pu.m23.plugin.ArriveActionPlugInPoint;
|
import nc.bs.pu.m23.plugin.ArriveActionPlugInPoint;
|
||||||
import nc.impl.pu.m23.maintain.rule.CheckBillDateRule;
|
import nc.impl.pu.m23.maintain.rule.CheckBillDateRule;
|
||||||
|
import nc.impl.pu.m23.maintain.rule.CheckFinalNumRule;
|
||||||
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
|
import nc.impl.pubapp.pattern.rule.processer.AroundProcesser;
|
||||||
import nc.vo.pu.m23.entity.ArriveVO;
|
import nc.vo.pu.m23.entity.ArriveVO;
|
||||||
import nc.vo.pu.m23.env.ArrivalUIToBSEnv;
|
import nc.vo.pu.m23.env.ArrivalUIToBSEnv;
|
||||||
|
|
@ -19,6 +20,7 @@ public class ArriveInsertAction {
|
||||||
public ArriveVO[] insertArrive(ArriveVO[] voArray, ArrivalUIToBSEnv env) {
|
public ArriveVO[] insertArrive(ArriveVO[] voArray, ArrivalUIToBSEnv env) {
|
||||||
AroundProcesser<ArriveVO> processer = new AroundProcesser(ArriveActionPlugInPoint.ArriveInsertAction);
|
AroundProcesser<ArriveVO> processer = new AroundProcesser(ArriveActionPlugInPoint.ArriveInsertAction);
|
||||||
addBeforeRule(processer);
|
addBeforeRule(processer);
|
||||||
|
|
||||||
processer.addBeforeRule(new CheckBillDateRule());
|
processer.addBeforeRule(new CheckBillDateRule());
|
||||||
processer.before(voArray);
|
processer.before(voArray);
|
||||||
ArriveInsertBP bp = new ArriveInsertBP(env);
|
ArriveInsertBP bp = new ArriveInsertBP(env);
|
||||||
|
|
@ -28,5 +30,6 @@ public class ArriveInsertAction {
|
||||||
}
|
}
|
||||||
private void addBeforeRule(AroundProcesser<ArriveVO> processer) {
|
private void addBeforeRule(AroundProcesser<ArriveVO> processer) {
|
||||||
processer.addBeforeFinalRule(new CheckBillDateRule());
|
processer.addBeforeFinalRule(new CheckBillDateRule());
|
||||||
|
processer.addBeforeRule(new CheckFinalNumRule());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package nc.impl.pu.m23.maintain.rule;
|
||||||
|
|
||||||
|
import nc.vo.pu.m23.entity.ArriveItemVO;
|
||||||
|
import nc.vo.pu.m23.entity.ArriveVO;
|
||||||
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nc.vo.pub.lang.UFDateTime;
|
||||||
|
import nc.vo.pub.lang.UFDouble;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最终需求数量校验
|
||||||
|
*/
|
||||||
|
public class CheckFinalNumRule implements IRule<ArriveVO> {
|
||||||
|
public CheckFinalNumRule() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void process(ArriveVO[] arriveVOS) {
|
||||||
|
for (ArriveVO vo : arriveVOS) {
|
||||||
|
if (vo.getPrimaryKey() != null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (vo == null || vo.getHVO() == null) {
|
||||||
|
try {
|
||||||
|
throw new BusinessException("到货单主信息不能为空");
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ArriveItemVO[] bodys=vo.getBVO();
|
||||||
|
for(ArriveItemVO body : bodys) {
|
||||||
|
if(null!=body.getAttributeValue("vbdef33") && body.getNastnum().compareTo(new UFDouble(String.valueOf(body.getAttributeValue("vbdef33"))))>0){
|
||||||
|
try {
|
||||||
|
throw new BusinessException("数量大于最终需求数量不能生成到货单!");
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue