`

流程优化

    博客分类:
  • Java
 
阅读更多

需要按照批次循环生成制定组数的套组。

 

采用双重循环作, 为了控制批次的日期不超出结束日期, 设置 startDate  和 endDate 作为全局变量。

 

采用 do .... while(true)   的循环方式, 循环内判断跳出。

 

if(endDate >= end_date.getValue()){

        break;

}

 

这种方式的结构不是很清晰, startDate , endDate  的值变动较大,不利于调试。

 

调整结构, 先循环把日期段计算好,存放于 List 之中,  之后循环这个 List 生成套组。

 

这样, 也十分利于调试, 可以在List 生成之后, 观察其内容, 把存储的代码段注释。

 

待日期正确之后,再执行套组存储的代码, 结构分离。 

 

且有些循环因为头元素的处理方式不一样 ,如果套组准备与存储写在一起,代码较长, 混淆结构。

 

分离后,直接使用 While 循环。

 

方法:(1~62)行

private void fixDateList(List<SchDateParam> dateList){    

 

用于计算日期时间段 ,元素 SchDateParam 包含开始, 结束2个日期值。

 

处理好了之后, 循环这个 List 执行套组的添加

 

 

 

 

 

 

	private void fixDateList(List<SchDateParam> dateList){
		
		SchDateParam dateParam = new SchDateParam();
		
		List<Date> restDateList = new ArrayList<Date>();
		if(rest_date1.getValue()!= null){restDateList.add(rest_date1.getValue());}
		if(rest_date2.getValue()!= null){restDateList.add(rest_date2.getValue());}
		if(rest_date3.getValue()!= null){restDateList.add(rest_date3.getValue());}
		if(rest_date4.getValue()!= null){restDateList.add(rest_date4.getValue());}
		
		int restIndex = 0; //当前在第几个休息日区间段内
		
		//计算本套组的开始时间  / 结束时间列表
		Date iStart = start_date.getValue();
		//如果有休息日期, 而且休息日期的时间<开始日期的后3天,那么开始日期就是休息后开始(小于3天不够安排场次)
		if(restDateList.size() > 0){
			if(cn.sh.cares.core.utils.DateUtils.getDateIntervalDays(restDateList.get(0), start_date.getValue())<3){
				iStart = DateUtils.addDays(restDateList.get(0), 1);//休息后开始
				restIndex  = fixRestIndex(restIndex, restDateList.size());
			}
		}
		Date iEnd = DateUtils.addDays(iStart, 4);
		
		iEnd = fixIEndDate(restDateList, restIndex, iEnd);
		
		dateParam.setiStart(iStart);
		dateParam.setiEnd(iEnd);
		
		dateList.add(dateParam);
		
		while(cn.sh.cares.core.utils.DateUtils.getDateIntervalDays(iEnd, end_date.getValue())<0){

			SchDateParam dateParami = new SchDateParam();

			iStart = DateUtils.addDays(iEnd, 2);
			iEnd = DateUtils.addDays(iStart, 4);
			
			if(restIndex < restDateList.size()){//如果还处于休息间断内,需要按照休息日计算该时间段内的开始日期, 否则直接按照上次的结束日期计算
				Date restEndPiont = DateUtils.addDays(restDateList.get(restIndex), -3);
				if(cn.sh.cares.core.utils.DateUtils.getDateIntervalDays(restEndPiont, iStart)>=0){//判断是否足够安排1套组
					if(cn.sh.cares.core.utils.DateUtils.getDateIntervalDays(iEnd, restEndPiont)>=0){
						iEnd = restEndPiont;
					}
				}else{//不足够安排1套组,转入下一个休息时间段内
					iStart = DateUtils.addDays(restDateList.get(restIndex), 1);
					iEnd = DateUtils.addDays(iStart, 4);
					restIndex  = fixRestIndex(restIndex, restDateList.size()); //修正索引
					iEnd = fixIEndDate(restDateList, restIndex, iEnd);
				}
			}

			if(cn.sh.cares.core.utils.DateUtils.getDateIntervalDays(iEnd, end_date.getValue())>=0){
				iEnd = end_date.getValue();
			}
			
			dateParami.setiStart(iStart);
			dateParami.setiEnd(iEnd);
			
			dateList.add(dateParami);
		}
	}
	


		//计算本套组的开始时间  / 结束时间列表
		fixDateList(dateList);
		System.out.println(dateList.size());
		
		for(SchDateParam schDateParam : dateList){
			int suitcountnum = fixSuitNum(schDateParam.getiStart(), schDateParam.getiEnd());
			
			for(Integer i=0; i < suit_num.getValue(); i++){//循环套组数
				List<SuitAdminView> suitList = genA320SuitList(suitcountnum);

				//设置批次号, 日期
				SuitAdminView suitAdminView0 = suitList.get(0);
				suitAdminView0.setBatch_no(batchNo.toString());
				suitAdminView0.getTraining_simDesViewList()[0].setS_date(schDateParam.getiStart());
				
				if(suitcountnum > 1){//执行多套组添加
					simSuitService.doManulSaveA320SimSuit(suitList, false);
					continue;
				}
				
				//设置单套组日期
				suitAdminView0.getTraining_simDesViewList()[1].setS_date(DateUtils.addDays(schDateParam.getiStart(), 1));
				suitAdminView0.getTraining_simDesViewList()[2].setS_date(DateUtils.addDays(schDateParam.getiStart(), 2));
				//设置单套组场次类型
				for(int simi = 1; simi <= suitAdminView0.getTraining_simDesViewList().length; simi ++){
					if(simi == 3){
						suitAdminView0.getTraining_simDesViewList()[simi - 1].setS_type("E");
					}else{
						suitAdminView0.getTraining_simDesViewList()[simi - 1].setS_type("T");
					}
				}
				
				fixBenchMonthAndCheckinDate(suitAdminView0);
				
				simSuitService.doManulSaveSimSuit(suitAdminView0, false);
				
			}
			
			batchNo += suitcountnum;

		}
		

 

分享到:
评论

相关推荐

    流程设计、流程优化与流程管理.pptx

    "流程设计、流程优化与流程管理" 流程设计、流程优化与流程管理是企业价值创造的机制,它们之间存在着紧密的联系。流程设计是指对流程的识别、优化和管理,以提高企业的效率和效益。流程优化是指对流程的改进和完善...

    埃森哲业务流程优化(BPR)方法论(110页 PPT).pptx

    ### 埃森哲业务流程优化(BPR)方法论 #### 一、引言 在当前快速变化的商业环境中,企业面临着前所未有的挑战。为了提高竞争力,许多组织选择采用业务流程优化(Business Process Reengineering, BPR)来改善其...

    流程优化风暴:企业流程数字化转型从战略到落地.docx

    流程优化风暴:企业流程数字化转型从战略到落地 流程优化风暴:企业流程数字化转型从战略到落地是企业管理领域的热点话题。企业流程优化是指对企业的各种业务流程进行重新设计和优化,以提高企业的运营效率、降低...

    高校财务报账流程优化论文.doc

    "高校财务报账流程优化论文" 本论文主要探讨高校财务报账流程的优化,结合 XH 大学财务报账的实际情况,分析财务报账流程中存在的问题,并提出优化对策,以提升高校财务报账工作的水平与效率。 一、高校财务报账...

    流程与流程优化基本知识

    ### 流程与流程优化基本知识 #### 一、流程定义与理解 1. **基本定义**: - 按照《牛津词典》的定义,流程是指一系列连续有规律的行动,这些行动以确定的方式发生或执行,从而导致特定结果的实现。 - 国际标准化...

    埃森哲流程优化原则(Process Excellence Principle)

    ### 埃森哲流程优化原则详解 #### 一、引言 随着企业竞争环境的日益激烈,提高流程效率已成为企业提升核心竞争力的关键因素之一。埃森哲作为全球领先的管理咨询和技术服务公司,在流程优化领域积累了丰富的经验和...

    流程优化方法论:1.-流程的梳理方法(PPT36页).ppt

    流程优化方法论:流程梳理方法 流程优化是企业管理中非常重要的一环,流程梳理是流程优化的前提和基础。流程梳理就是梳理企业的流程,使其变得更加清晰、简洁、高效。流程梳理的准备是流程优化的关键步骤,包括确定...

    业务流程优化思路和方法.doc

    “业务流程优化思路和方法” 业务流程优化是企业信息化建设的重要组成部分,对于中国企业来说已不再陌生,但前期效果实在差强人意。造成这种结果的原因很多,如管理软件系统不成熟,系统实施队伍经验不足等,但核心...

    集团财务从流程优化开始

    面对快速发展带来的财务管理挑战,安徽合力选择了从财务流程优化开始,以此提升集团财务管理效率。 在集团财务流程优化的过程中,安徽合力首先认识到传统的职能化财务管理方式的局限性。随着分子公司数量的增长,...

    神华集团流程优化与信息化总体规划报告.pdf

    项目目标和总体规划思路 流程优化和IT规划项目的主要成果 未来建设规划和下一步工作

    业务流程优化设计培训.ppt

    业务流程优化设计培训的核心在于提升企业的运营效率和客户满意度,通过对业务流程的深入理解和重构,实现组织的持续改进。流程是一系列相互关联的活动,涉及信息、资金、人员、技术和文档等多个输入要素,最终产生...

    从流程优化的一个经典格说开去.pdf

    《从流程优化的一个经典格说开去》这篇文章深入探讨了企业流程优化的重要性和具体方法。流程优化是提升企业效率和竞争力的关键,它涉及到对现有工作流程的细致分析和改进。 文章提到,流程优化首先要深入了解实际...

    重新认识流程管理、流程优化

    深入理解流程管理、流程优化, 为打造流程型企业提供参考

    电商仓储企业仓储作业流程优化设计.pdf

    首先,电子商务物流概述是理解仓储作业流程优化设计的基础。电商物流不仅涉及传统物流的基本流程,如运输、存储、装卸等,还包括了先进的网络技术、信息流、资金流、业务流的无缝集成。电商物流仓储系统作为整个物流...

    15-BW-《企业流程优化与标准化操作手册编制实务》2天大纲.doc

    《企业流程优化与标准化操作手册编制实务》课程旨在帮助企业构建高效、规范的管理流程,提升团队的流程管理和操作能力。课程结合理论精讲、实际案例分析、互动练习和工作坊形式,使学员深入理解流程管理的重要性,...

    基于流程优化的餐饮业消费者满意度提升研究

    流程优化是指通过改进服务流程中的关键步骤和环节,提高服务效率,减少不必要的等待和停滞,从而提升整体的服务质量和客户体验。流程优化可以涉及到服务前的准备、接待、点餐、制作、上菜以及结算等多个环节,通过...

    [国有企业,流程,项目]浅议国有企业内审工作项目流程优化.docx

    《浅议国有企业内审工作项目流程优化》 国有企业的内部审计工作是保障企业健康运行的重要环节,其流程的优化对于提升工作效率和质量具有深远影响。本文以精益六西格玛管理思想为指导,探讨如何改进国有企业内部审计...

    大数据环境下科研管理流程优化研究.pdf

    聂迪在其研究《大数据环境下科研管理流程优化研究》中系统地探讨了当前科研管理流程中存在的问题,并提出了基于大数据技术改善科研管理流程的建议,以适应时代的需求和科技进步。 首先,研究指出传统科研管理流程...

    《新奥集团流程优化及IT规划项目实施计划报告》(65页)

    《新奥集团流程优化及IT规划项目实施计划报告》是一个重要的文档,对于任何正在或计划进行IT规划的企业或团队来说,都是宝贵的参考资料。这个报告详细阐述了如何通过流程优化和有效的IT规划来提升企业的运营效率和...

    AMT咨询观点之:从流程优化的一个经典表格说开去.docx

    ### AMT咨询观点之:从流程优化的一个经典表格说开去 #### 一、引言 随着企业竞争环境的日益激烈以及市场需求的不断变化,流程优化成为提升企业竞争力的重要手段之一。AMT咨询在此篇文章中提出了一个核心观点:...

Global site tag (gtag.js) - Google Analytics