生产订单备料重算更新请购单

This commit is contained in:
lihao 2025-10-16 18:29:57 +08:00
parent 717c315157
commit 80cea4f91e
2 changed files with 55 additions and 0 deletions

View File

@ -5,6 +5,7 @@
package nc.bs.mmpac.pmo.pac0002.bp;
import nc.bs.mmpac.pmo.pac0002.bp.rule.AfterPickmRecalUpdateBuyingreqRule;
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
import nc.bs.mmpac.pmo.pac0002.rule.PMOPickmRecalRule;
import nc.bs.mmpac.pmo.pac0002.rule.PMOPickmRecalStatusRule;
@ -31,5 +32,7 @@ public class PMOPickmRecalBP {
processer.addBeforeRule(rowstatuerule);
IRule<PMOAggVO> bomrtrule = new PMOCheckPickmRecalBomRTRule();
processer.addBeforeRule(bomrtrule);
IRule<PMOAggVO> aggVOIRule = new AfterPickmRecalUpdateBuyingreqRule();
processer.addBeforeRule(aggVOIRule);
}
}

View File

@ -0,0 +1,52 @@
package nc.bs.mmpac.pmo.pac0002.bp.rule;
import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.impl.pubapp.pattern.rule.IRule;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
import nc.vo.pub.lang.UFDouble;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* 备料重算后更新请购单
*/
public class AfterPickmRecalUpdateBuyingreqRule implements IRule<PMOAggVO> {
@Override
public void process(PMOAggVO[] pmoAggVOS) {
BaseDAO dao = new BaseDAO();
for (PMOAggVO pmoAggVO : pmoAggVOS) {
for (PMOItemVO pmoItemVO:pmoAggVO.getChildrenVO()){
try {
String pmoid=pmoItemVO.getCmoid();
UFDouble nastnum=pmoItemVO.getNastnum();
// 查询备料计划
String pickmsql = "select cpickm_bid,nplanoutnum from mm_pickm_b where cpickmid in ( select cpickmid from mm_pickm where csourcebillrowid='" + pmoid + "' and dr=0) and dr = 0";
List<Map<String,Object>> hmateral = (List<Map<String,Object>>) dao.executeQuery(pickmsql, new MapListProcessor());
for (Map<String,Object> map : hmateral) {
String buyingreqsql = "select pk_praybill_b,nnum from po_praybill_b where csourcebid ='" + map.get("cpickm_bid") + "' and dr = 0";
List<Map<String,Object>> buyingreq = (List<Map<String,Object>>) dao.executeQuery(buyingreqsql, new MapListProcessor());
for (Map<String,Object> map2 : buyingreq) {
if (new UFDouble((BigDecimal) map2.get("nnum")).compareTo(new UFDouble((BigDecimal)map.get("nplanoutnum"))) >0) {
String sql = "update po_praybill_b set vbdef15='" +map.get("nplanoutnum") + "' where pk_praybill_b='"
+map2.get("pk_praybill_b") + "'";
dao.executeUpdate(sql);
}
}
}
} catch (DAOException e) {
throw new RuntimeException(e);
}
}
}
}
}