负计划采购入库回写校验
This commit is contained in:
		
							parent
							
								
									8c76f8e3e9
								
							
						
					
					
						commit
						9d13298270
					
				|  | @ -0,0 +1,108 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.bs.pu.m23.writeback.ic.m45; | ||||
| 
 | ||||
| import java.util.HashSet; | ||||
| import java.util.Set; | ||||
| import nc.bs.pu.m23.plugin.ArriveBPPlugInPoint; | ||||
| import nc.bs.pu.m23.writeback.ic.rule.*; | ||||
| import nc.impl.pubapp.pattern.data.view.ViewQuery; | ||||
| import nc.impl.pubapp.pattern.data.view.ViewUpdate; | ||||
| import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; | ||||
| import nc.pubitf.pu.m23.ic.m45.IWriteback23For45Para; | ||||
| import nc.vo.ml.NCLangRes4VoTransl; | ||||
| import nc.vo.pu.m23.entity.ArriveItemVO; | ||||
| import nc.vo.pu.m23.entity.ArriveViewVO; | ||||
| import nc.vo.pu.m23.utils.ArrivePublicUtil; | ||||
| import nc.vo.pub.lang.UFBoolean; | ||||
| import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||
| import nccloud.commons.lang.ArrayUtils; | ||||
| import nccloud.commons.lang.StringUtils; | ||||
| 
 | ||||
| public class Writeback23For45BP { | ||||
|     public Writeback23For45BP() { | ||||
|     } | ||||
| 
 | ||||
|     public void writeback(IWriteback23For45Para[] paras) { | ||||
|         if (!ArrayUtils.isEmpty(paras)) { | ||||
|             this.checkWritePara(paras); | ||||
|             String[] bidArray = ArrivePublicUtil.getWriteParaBidArray(paras); | ||||
|             ViewQuery<ArriveViewVO> q = new ViewQuery(ArriveViewVO.class); | ||||
|             q.setSharedHead(true); | ||||
|             Set<String> bidSet = new HashSet(); | ||||
| 
 | ||||
|             for(int i = 0; i < bidArray.length; ++i) { | ||||
|                 bidSet.add(bidArray[i]); | ||||
|             } | ||||
| 
 | ||||
|             ArriveViewVO[] oldViewVOArray = (ArriveViewVO[])q.query((String[])bidSet.toArray(new String[bidSet.size()])); | ||||
|             ArriveBPPlugInPoint point = ArriveBPPlugInPoint.Writeback23For45BP; | ||||
|             AroundProcesser<ArriveViewVO> pc = new AroundProcesser(point); | ||||
|             this.addBeforeFinalRule(pc, paras); | ||||
|             this.addAfterRule(pc, paras); | ||||
|             pc.before(oldViewVOArray); | ||||
|             String[] names = new String[]{"naccumstorenum", "bletgostate", "naccumletgoinnum"}; | ||||
|             ViewUpdate<ArriveViewVO> bo = new ViewUpdate(); | ||||
|             oldViewVOArray = (ArriveViewVO[])bo.update(oldViewVOArray, ArriveItemVO.class, names); | ||||
|             pc.after(oldViewVOArray); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void addAfterRule(AroundProcesser<ArriveViewVO> processer, IWriteback23For45Para[] paras) { | ||||
|         processer.addAfterRule(new ChkBStoreNumRule(UFBoolean.valueOf(paras[0].isNumUserConfirm()))); | ||||
| 
 | ||||
|         processer.addAfterRule(new ChknaccumstorenumRule()); | ||||
|     } | ||||
| 
 | ||||
|     private void addBeforeFinalRule(AroundProcesser<ArriveViewVO> processer, IWriteback23For45Para[] paras) { | ||||
|         processer.addBeforeFinalRule(new ChkBCreateFaCardRule()); | ||||
|         processer.addBeforeFinalRule(new UpdateBBStoreNumRule(paras)); | ||||
|         processer.addBeforeFinalRule(new UpdateViewStoreNumRule(paras)); | ||||
|         processer.addBeforeFinalRule(new WriteAccumLetgoInnumRule(paras)); | ||||
|     } | ||||
| 
 | ||||
|     private void checkWritePara(IWriteback23For45Para[] paras) { | ||||
|         for(IWriteback23For45Para para : paras) { | ||||
|             if (StringUtils.isEmpty(para.getHID())) { | ||||
|                 String message = NCLangRes4VoTransl.getNCLangRes().getStrByID("4004040_0", "04004040-0092"); | ||||
|                 ExceptionUtils.wrappBusinessException(message); | ||||
|             } | ||||
| 
 | ||||
|             if (StringUtils.isEmpty(para.getBID())) { | ||||
|                 String message = NCLangRes4VoTransl.getNCLangRes().getStrByID("4004040_0", "04004040-0093"); | ||||
|                 ExceptionUtils.wrappBusinessException(message); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     public void writebackSagasCheck(IWriteback23For45Para[] paras) { | ||||
|         if (!ArrayUtils.isEmpty(paras)) { | ||||
|             this.checkWritePara(paras); | ||||
|             String[] bidArray = ArrivePublicUtil.getWriteParaBidArray(paras); | ||||
|             ViewQuery<ArriveViewVO> q = new ViewQuery(ArriveViewVO.class); | ||||
|             q.setSharedHead(true); | ||||
|             Set<String> bidSet = new HashSet(); | ||||
| 
 | ||||
|             for(int i = 0; i < bidArray.length; ++i) { | ||||
|                 bidSet.add(bidArray[i]); | ||||
|             } | ||||
| 
 | ||||
|             ArriveViewVO[] oldViewVOArray = (ArriveViewVO[])q.query((String[])bidSet.toArray(new String[bidSet.size()])); | ||||
|             ArriveBPPlugInPoint point = ArriveBPPlugInPoint.Writeback23For45BP; | ||||
|             AroundProcesser<ArriveViewVO> pc = new AroundProcesser(point); | ||||
|             this.addBeforeFinalSagasCheckRule(pc, paras); | ||||
|             pc.before(oldViewVOArray); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private void addBeforeFinalSagasCheckRule(AroundProcesser<ArriveViewVO> processer, IWriteback23For45Para[] paras) { | ||||
|         processer.addBeforeFinalRule(new ChkBCreateFaCardRule()); | ||||
|         processer.addBeforeFinalRule(new UpdateBBStoreNumRule(paras, true)); | ||||
|         processer.addBeforeFinalRule(new UpdateViewStoreNumRule(paras)); | ||||
|         processer.addBeforeFinalRule(new WriteAccumLetgoInnumRule(paras, true)); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,56 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.bs.pu.m23.writeback.ic.rule; | ||||
| 
 | ||||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.bs.dao.DAOException; | ||||
| import nc.impl.pubapp.pattern.rule.IRule; | ||||
| import nc.jdbc.framework.processor.ColumnProcessor; | ||||
| import nc.jdbc.framework.processor.MapProcessor; | ||||
| import nc.vo.ml.NCLangRes4VoTransl; | ||||
| import nc.vo.pu.m23.entity.ArriveItemVO; | ||||
| import nc.vo.pu.m23.entity.ArriveViewVO; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDouble; | ||||
| import nc.vo.pubapp.pattern.data.ValueUtils; | ||||
| import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||
| 
 | ||||
| import java.util.Map; | ||||
| 
 | ||||
| public class ChknaccumstorenumRule implements IRule<ArriveViewVO> { | ||||
|     public ChknaccumstorenumRule() { | ||||
|     } | ||||
| 
 | ||||
|     public void process(ArriveViewVO[] vos) { | ||||
|         if (vos != null && vos.length != 0) { | ||||
|             for(ArriveViewVO view : vos) { | ||||
|                 try { | ||||
|                     UFDouble naccumstorenum1= getNaccumstorenum(view.getBVO().getPk_arriveorder_b()); | ||||
|                 } catch (DAOException e) { | ||||
|                     throw new RuntimeException(e); | ||||
|                 } | ||||
|                 UFDouble naccumstorenum = view.getBVO().getNaccumstorenum(); | ||||
|               Object vbdef33 =  view.getBVO().getVbdef33(); | ||||
|               if(null != vbdef33 && null!=naccumstorenum && naccumstorenum.compareTo(new UFDouble(String.valueOf(vbdef33)))>0) { | ||||
|                   try { | ||||
|                       throw new BusinessException("累计入库主数量大于最终需求数量不能生成采购入库!"); | ||||
|                   } catch (BusinessException e) { | ||||
|                       throw new RuntimeException(e); | ||||
|                   } | ||||
|               } | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private UFDouble getNaccumstorenum(String pkArriveorderB) throws DAOException { | ||||
| 
 | ||||
|         // csourcebid | ||||
|         String mrlsql = "select naccumstorenum from po_arriveorder_b where pk_arriveorder_b = '" + pkArriveorderB + "' "; | ||||
|         Object mrl =  new BaseDAO().executeQuery(mrlsql, new ColumnProcessor()); | ||||
|         return new UFDouble(String.valueOf(mrl)); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue