增加mmpub模块,增加齐套算法
This commit is contained in:
		
							parent
							
								
									3deeda5d52
								
							
						
					
					
						commit
						55e7646ebc
					
				|  | @ -1,5 +1,10 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <classpath> | ||||
| 	<classpathentry kind="src" output="bin" path="mmpub/src/public"/> | ||||
| 	<classpathentry kind="src" output="bin" path="mmpub/src/client"/> | ||||
| 	<classpathentry kind="src" output="bin" path="mmpub/src/private"/> | ||||
| 	<classpathentry kind="src" output="bin" path="mmpub/src/test"/> | ||||
| 	<classpathentry kind="src" output="bin" path="mmpub/resources"/> | ||||
| 	<classpathentry kind="src" output="bin" path="sscivm/src/public"/> | ||||
| 	<classpathentry kind="src" output="bin" path="sscivm/src/client"/> | ||||
| 	<classpathentry kind="src" output="bin" path="sscivm/src/private"/> | ||||
|  |  | |||
|  | @ -0,0 +1,3 @@ | |||
| <component name="mmpub" displayname="mmpub"> | ||||
|   <dependencies/> | ||||
| </component> | ||||
|  | @ -0,0 +1,85 @@ | |||
| package nc.bs.mmpub.setanalysis.bp; | ||||
| 
 | ||||
| import nc.bs.mmpub.setanalysis.bp.log.SaMemoryBP; | ||||
| import nc.bs.mmpub.setanalysis.bp.utils.SaLogger; | ||||
| import nc.bs.mmpub.setanalysis.proxy.SaServiceProxy; | ||||
| import nc.vo.mmpub.setanalysis.entity.AggAnalysisVO; | ||||
| import nc.vo.mmpub.setanalysis.entity.SaContext; | ||||
| import nc.vo.pub.BusinessException; | ||||
| import nc.vo.pub.lang.UFDateTime; | ||||
| import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||
| import nc.bs.mmpub.setanalysis.bp.rule.analysisAfterCheckRule; | ||||
| import nc.vo.mmpub.setanalysis.entity.SaAnalysisVO; | ||||
| import nc.vo.mmpub.setanalysis.utils.SaMeasureUtil; | ||||
| import nc.bs.mmpub.setanalysis.bp.utils.SaScaleUtil; | ||||
| import nc.bs.mmpub.setanalysis.bp.utils.SaVOUtils; | ||||
| 
 | ||||
| public class SetAnalysisBP { | ||||
| 	private SaContext context; | ||||
| 
 | ||||
| 	public SetAnalysisBP(SaContext context) { | ||||
| 		this.context = context; | ||||
| 	} | ||||
| 
 | ||||
| 	public AggAnalysisVO[] doSetAnalysis() { | ||||
| 		try { | ||||
| 			addBeforeRule(); | ||||
| 			SaLogger.init(); | ||||
| 			UFDateTime tstarttime1 = new UFDateTime(); | ||||
| 			SaLogger.debug("0.分析开始^^^^^^^^^^^^^^^^^^^^^^^^^^"); | ||||
| 
 | ||||
| 			createMd5Function(); | ||||
| 
 | ||||
| 			UFDateTime tstarttime2 = new UFDateTime(); | ||||
| 			SaLogger.debug("1.收集数据"); | ||||
| 			SaMemoryBP.printMemory(); | ||||
| 			SaServiceProxy.getAnalysisService().gather_RequiresNew(this.context); | ||||
| 			SaLogger.debug("数据收集共耗时:" + SaLogger.getRunTime(tstarttime2)); | ||||
| 
 | ||||
| 			UFDateTime tstarttime3 = new UFDateTime(); | ||||
| 			SaLogger.debug("2.执行匹配开始"); | ||||
| 			SaServiceProxy.getAnalysisService().match_RequiresNew(this.context); | ||||
| 			SaLogger.debug("匹配共耗时:" + SaLogger.getRunTime(tstarttime3)); | ||||
| 
 | ||||
| 			UFDateTime tstarttime4 = new UFDateTime(); | ||||
| 			SaLogger.debug("3.反算齐套开始"); | ||||
| 			SaServiceProxy.getAnalysisService().multiStorey_RequiresNew(this.context); | ||||
| 			SaLogger.debug("反算齐套结束,共耗时:" + SaLogger.getRunTime(tstarttime4)); | ||||
| 			SaMemoryBP.printMemory(); | ||||
| 			this.result(this.context.getAggs()); | ||||
| 			this.analysisAfterCheckRule();// 分析后调用回写 | ||||
| 			SaLogger.debug("齐套分析算法结束,共耗时:" + SaLogger.getRunTime(tstarttime1)); | ||||
| 			return this.context.getAggs(); | ||||
| 		} catch (BusinessException e) { | ||||
| 			ExceptionUtils.wrappException(e); | ||||
| 			SaLogger.error(e.getMessage()); | ||||
| 
 | ||||
| 			return null; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	private void result(AggAnalysisVO[] aggs) { | ||||
| 		SaScaleUtil scale = new SaScaleUtil(); | ||||
| 		SaAnalysisVO[] savos = SaVOUtils.construcVOs(aggs); | ||||
| 		scale.setScaleSuperVOs(savos, "cmeasureid", new String[] { "nsetsnum" }); | ||||
| 		SaMeasureUtil.setAnalysisAssNum(aggs); | ||||
| 	} | ||||
| 
 | ||||
| 	private void printMemory(String operation) { | ||||
| 		long totalMemory = Runtime.getRuntime().totalMemory() / 1024L / 1024L; | ||||
| 		long freeMemory = Runtime.getRuntime().freeMemory() / 1024L / 1024L; | ||||
| 		SaLogger.debug(operation + ":totalMemory->" + operation + "MB,freeMemory->" + totalMemory + "MB"); | ||||
| 	} | ||||
| 
 | ||||
| 	private void createMd5Function() { | ||||
| 		(new SaFunctionBP()).createMD5(); | ||||
| 	} | ||||
| 
 | ||||
| 	private void addBeforeRule() { | ||||
| 		 | ||||
| 	} | ||||
| 
 | ||||
| 	private void analysisAfterCheckRule() { | ||||
| 		(new analysisAfterCheckRule()).process(this.context.getAggs()); | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,45 @@ | |||
| package nc.bs.mmpub.setanalysis.bp.rule; | ||||
| 
 | ||||
| import nc.bs.dao.BaseDAO; | ||||
| import nc.impl.pubapp.pattern.rule.IRule; | ||||
| import nc.vo.mmpub.setanalysis.entity.AggAnalysisVO; | ||||
| import nc.vo.mmpub.setanalysis.entity.SaAnalysisVO; | ||||
| import nc.vo.pub.BusinessException; | ||||
| 
 | ||||
| public class analysisAfterCheckRule implements IRule<AggAnalysisVO> { | ||||
| 
 | ||||
|     @Override | ||||
|     public void process(AggAnalysisVO[] aggAnalysisVOS) { | ||||
|         try { | ||||
|             for (AggAnalysisVO vo : aggAnalysisVOS) { | ||||
|                 SaAnalysisVO saAnalysisVO = vo.getParentVO(); | ||||
|                 String cdemandbillbid = saAnalysisVO.getCdemandbillbid();//需求单据明细nsetsnum | ||||
|                 Object ntotaloutnumsObj = saAnalysisVO.getNsetsnum();//齐套主数量ndemandnum | ||||
|                 String ntotaloutnums = (ntotaloutnumsObj != null) ? ntotaloutnumsObj.toString() : ""; | ||||
|                 double ntotaloutnum = | ||||
|                         (ntotaloutnums.isEmpty()) ? 0 : Double.parseDouble(ntotaloutnums);//齐套主数量 | ||||
|                 Object ndemandnumObj = saAnalysisVO.getNdemandnum();//分析主数量 | ||||
|                 String ndemandnums = (ndemandnumObj != null) ? ndemandnumObj.toString() : ""; | ||||
|                 double ndemandnum = | ||||
|                         (ndemandnums.isEmpty()) ? 0 : Double.parseDouble(ndemandnums);//分析数量 | ||||
|                 double vdef4 = 0; | ||||
|                 if (ndemandnum != 0) { | ||||
|                     vdef4 = ntotaloutnum / ndemandnum; | ||||
|                 } | ||||
|                 String update = | ||||
|                         " update mm_mo set vdef6=" + ntotaloutnum + ",vdef4=" + vdef4 + " where cmoid='" | ||||
|                                 + cdemandbillbid + "' "; | ||||
|                 updateSaleBSQty(update); | ||||
|             } | ||||
|         } catch (BusinessException e) { | ||||
|             throw new RuntimeException(e); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private int updateSaleBSQty(String sql) throws BusinessException { | ||||
|         BaseDAO baseDAO = new BaseDAO(); | ||||
|         int succInt = baseDAO.executeUpdate(sql); | ||||
|         return succInt; | ||||
|     } | ||||
| 
 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue