备料计划下达请购生产订单,已下达数量优化

This commit is contained in:
lihao 2025-10-24 16:47:59 +08:00
parent 2de07b466b
commit deeca7d760
4 changed files with 79 additions and 2 deletions

View File

@ -169,7 +169,7 @@ public class PickmToBuyingreqAction implements ICommonAction {
private void updetaPmoNum(List<Map<String, Object>> updateList) throws DAOException {
BaseDAO dao = new BaseDAO();
for (Map<String, Object> updateMap : updateList) {
String sql = " update mm_pickm_b set vbdef16 = '"+((UFDouble)updateMap.get("num")).toString()+"' where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) + TO_NUMBER('"+((UFDouble)updateMap.get("num")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
dao.executeUpdate(sql);
}
}

View File

@ -116,7 +116,7 @@ public class PickmToPmo implements ICommonAction {
private void updetaPmoNum(List<Map<String, Object>> updateList) throws DAOException {
BaseDAO dao = new BaseDAO();
for (Map<String, Object> updateMap : updateList) {
String sql = " update mm_pickm_b set vbdef16 = '"+((UFDouble)updateMap.get("num")).toString()+"' where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) + TO_NUMBER('"+((UFDouble)updateMap.get("num")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
dao.executeUpdate(sql);
}
}

View File

@ -31,6 +31,7 @@ import nc.util.mmf.framework.gc.GCUpdateBPTemplate;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
import nc.vo.mmpac.pmo.pac0002.util.PmoSagaUtil;
import nc.bs.mmpac.pmo.pac0002.bp.rule.UpdatePickmDef16Rule;
import java.util.ArrayList;
import java.util.List;
@ -217,6 +218,9 @@ public class PMOUpdateBP {
processer.addAfterRule(planStartTimeChangeRule);
IRule<PMOAggVO> updateAfterToMesRule = new UpdateAfterToMesRule();
processer.addAfterRule(updateAfterToMesRule);
ICompareRule<PMOAggVO> UpdatePickmRule = new UpdatePickmDef16Rule();//sunfj2025.09.26
processer.addAfterRule(UpdatePickmRule);
}
public List<String> getCheckInfoList() {

View File

@ -0,0 +1,73 @@
package nc.bs.mmpac.pmo.pac0002.bp.rule;
import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.bs.framework.common.NCLocator;
import nc.bs.trade.business.HYPubBO;
import nc.impl.pubapp.pattern.rule.ICompareRule;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.ColumnListProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.util.mmf.framework.base.MMValueCheck;
import nc.vo.mmpac.pickm.entity.PickmItemVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.pub.lang.UFDouble;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UpdatePickmDef16Rule implements ICompareRule<PMOAggVO> {
public void process(PMOAggVO[] vos, PMOAggVO[] originVOs) {
if (!MMValueCheck.isEmpty(vos)) {
List<Map<String,Object>> updateList = new ArrayList<>();
for (PMOAggVO vo : vos) {
for (PMOAggVO originVO : originVOs) {
if(vo.getParentVO().getCpmohid().equals(originVO.getParentVO().getCpmohid())) {
for (PMOItemVO voitemVo:vo.getChildrenVO()){
if("55A3".equals(voitemVo.getVsrctype())){
Map<String,Object> updateMap = new HashMap<String,Object>();
updateMap.put("pk",voitemVo.getVsrcbid());
updateMap.put("beforenum",voitemVo.getNastnum());
updateMap.put("afternum", UFDouble.ZERO_DBL);
for (PMOItemVO originItemVO:originVO.getChildrenVO()){
if(voitemVo.getCpmohid().equals(originItemVO.getCpmohid())) {
updateMap.put("afternum",originItemVO.getNastnum());
updateList.add(updateMap);
}
}
}
}
}
}
}
if (updateList.size() > 0) {
try {
updetaPmoNum(updateList);
} catch (DAOException e) {
throw new RuntimeException(e);
}
}
}
}
private void updetaPmoNum(List<Map<String, Object>> updateList) throws DAOException {
BaseDAO dao = new BaseDAO();
for (Map<String, Object> updateMap : updateList) {
// String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(vbdef16) -"+updateMap.get("num")+") where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
String sql = " update mm_pickm_b set vbdef16 = TO_CHAR(TO_NUMBER(CASE WHEN vbdef16 IS NULL OR vbdef16 = '~' OR vbdef16 = '~' THEN '0' ELSE vbdef16 END) -TO_NUMBER('"+((UFDouble)updateMap.get("beforenum")).toString()+"'))+TO_NUMBER('"+((UFDouble)updateMap.get("afternum")).toString()+"')) where mm_pickm_b.cpickm_bid ='" + updateMap.get("pk") + "'";
// dao.executeUpdate(sql);
}
}
}