`
foible
  • 浏览: 44018 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

蛋疼的代码

阅读更多

package eman.event.productionView;

import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import eman.bean.monitor.EquipBean;
import eman.bean.monitor.OperationActualHoursBean;
import eman.bean.monitor.ScanHumanInfo;
import eman.bean.productionView.MonitorTimeBean;
import eman.bean.productionView.MouldPartOperationBean;
import eman.bean.productionView.QueryMouldInfo.MouldBean;
import eman.bean.productionView.QueryMouldInfo.MouldPartInfoBean;
import eman.bean.productionView.QueryMouldInfo.QueryMouldStateInfoForm;
import eman.bean.system.Result;
import eman.event.EventHandlerBase;
import eman.sql.productionView.QueryMouldInfoSql;
import eman.sys.SysConfig;
import eman.tool.ChineseSwitcher;

/**
 * 模具进度信息查询时间,模具计划,模具简单详细视图共用事件 History: 1.0 谢俊 1.5 易平 性能优化 2.0 sam 2005-10-4
 * 隐藏没有工序的工件 2.0.1 husha 2005-1-7 根据传递的标识来判断显示已完工或未完工的模具 2.0.1 husha 2006-1-11
 * 增加正在加工工序的最近一次开始时间 2.0.3 sam 2006-2-20 增加模具延期天数 yp 3.0.1.23 2006-03-26
 * 增加模具加工阶段的查询条件* yaominxi 2006-04-06 修改默认查询条件下有异常出现的bug 胡孟琦 3.1.1 添加交货期和模具类型查询
 * 2006.5.7 fq 06-11-04 添加根据模具内部编号模糊查询 cz 2006-12-22 加入在event中的排序字段 searchTtype
 * yxb 2007-05-18 新建模具进度详细查询事件 hmq 3.5 添加工时与质检信息 2007.7.3 myh 2007-12-21 EM-8362
 * 将工件信息添加到对应的模具 提交
 */

public class MouldStateDetailQueryEvent extends EventHandlerBase {
	private static Logger log4j = Logger.getRootLogger();

	/**
	 * 步骤: 1.查询数据库得到所有数据 1.1.查询选择的模具 1.2.查询模具下的所有工件 1.3.过滤:查询模具下未完工的工序信息
	 * ,工件、状态排序 不过滤:查询模具下所有的工序信息,工件、状态排序 1.4.过滤: 查询所选模具的未完成工序的所有监控记录
	 * 不过滤:查询所选模具的所有监控记录 1.5.查询生产资源和操作工信息 2.对数据进行处理(综合监控信息和工序信息)
	 * 2.1计算实际开始时间和实际完成时间 ,查询实际资源、实际操作工 2.2查询对于未完工模具的计划完成时间,计划加工生产资源
	 * 2.3按照层次结构组织数据结构(工件中工序按照状态分类)
	 * 
	 * 数据结构: MouldBean MouldPartInfoBean (状态分类) MouldPartOperationBean todo joly
	 * 2.0 050621加上时间查询条件 时间范围判断规则: 1.对于已经加工完的工序:指实际完成时间在此范围 2.暂停工序: 3.未开始加工的工序:
	 * 4.正在加工的工序: History: yp 3.0.1.23 2006-03-26 增加模具加工阶段的查询条件 cz 2006-12-21
	 * 增加按模号排序需求 sam 3.5.1_lbl 2008-03-12 修正实际工时为零时产生的bug
	 */

	@SuppressWarnings("unchecked")
	public void process(ServletContext sc, HttpServletRequest request,
			HttpServletResponse response, HashMap bean) {
		QueryMouldStateInfoForm form = new QueryMouldStateInfoForm();
		try {
			/**
			 * @author husha Get the over or doing flag to sort the table by
			 *         mould layer
			 */
			String doingflag = (String) request.getParameter("doingflag");
			if (doingflag == null) {
				doingflag = "false";
			} else {
				doingflag = "true";
			}
			String overflag = (String) request.getParameter("overflag");
			if (overflag == null) {
				overflag = "false";
			} else {
				overflag = "true";
			}
			int mouldWorkingState = 0;
			if (request.getParameter("mouldWorkingState") != null
					&& !(request.getParameter("mouldWorkingState").equals(""))) {
				mouldWorkingState = Integer.parseInt(request
						.getParameter("mouldWorkingState"));

			}
			Result result = null;
			if (request.getAttribute("result") != null) {
				result = (Result) request.getAttribute("result");
			} else {
				result = new Result();
			}

			String pattern = "##0.##";
			DecimalFormat df = new DecimalFormat(pattern);

			String mouldID;
			mouldID = request.getParameter("mouldTextID"); // 模具ID
			// 工件监控编号,共多页面使用
			// String partMonitorID=request.getParameter("partMonitorID");

			QueryMouldInfoSql queryMouldInfoSql = new QueryMouldInfoSql();
			if (request.getParameter("mouldPartID") != null) {
				mouldID = queryMouldInfoSql.queryMouldIDFromPartID(request
						.getParameter("mouldPartID").trim(), result);
			}
			String operationID = "";
			if (request.getParameter("operationID") != null) {
				operationID = request.getParameter("operationID");
				request.setAttribute("operationID", operationID);
			}
			// 加入筛选,可以删掉完工工序,判断checkboxSelect是否为空,为空表示不过滤
			String[] checkboxSelect = request.getParameterValues("isHideDone");
			// 判断是否隐藏完工工件
			request.setAttribute("isHideDone", checkboxSelect);
			HashMap mouldStateInfo = null;
			if (mouldID.equals("all")) {
				mouldID = "";
			}
			long startTime = System.currentTimeMillis();
			String percent1 = "0"; // 计划工时与实际工时百分比
			String percent2 = ""; // 计划工时与实际工时百分比
			if (request.getParameter("mouldPartID") != null) {
				percent1 = "";
			} else {
				percent1 = request.getParameter("percent1");
			}
			if (request.getParameter("mouldPartID") != null) {
				percent2 = "";
			} else {
				percent2 = request.getParameter("percent2");
			}
			if (percent1 == null) {
				percent1 = "";
			}
			if (percent2 == null) {
				percent2 = "";
			}

			// 加上获取时间查询参数
			String actualStartDate; // 查询开始时间
			String actualStopDate; // 查询结束时间
			String planStartDate; // 查询开始时间
			String planStopDate; // 查询结束时间

			// 选择了时间范围
			String[] checkActualTimeSelect = request
					.getParameterValues("actualTimeSelect");
			String[] checkPlanTimeboxSelect = request
					.getParameterValues("planTimeSelect");
			if (checkActualTimeSelect != null) { // 选择了实际时间范围
				actualStartDate = request.getParameter("begDate");
				actualStopDate = request.getParameter("endDate");
				request.setAttribute("actualStartDate", actualStartDate);
				request.setAttribute("actualStopDate", actualStopDate);
			}
			if (checkPlanTimeboxSelect != null) { // 选择了计划时间范围
				planStartDate = request.getParameter("begTime");
				planStopDate = request.getParameter("endTime");
				request.setAttribute("planStartDate", planStartDate);
				request.setAttribute("planStopDate", planStopDate);
			}

			// 选择了时间范围
			/*
			 * if((startDate!=null)&&(!startDate.equals(""))&&(stopDate!=null)&&(!stopDate.equals(""))){
			 * //1.查询数据库得到所有数据 if (checkboxSelect == null) { //不过滤已经完成的部分
			 * mouldStateInfo =
			 * queryMouldInfoSql.queryMouldStateInfo(dateTimeFrom,dateTimeTo,mouldID,
			 * 0, 0, result); } else { mouldStateInfo =
			 * queryMouldInfoSql.queryMouldStateInfo(dateTimeFrom,dateTimeTo,mouldID,
			 * 5, 0, result); } }else
			 * if((startDate==null)||(startDate.equals(""))||(stopDate==null)||(stopDate.equals(""))){
			 */
			// 1.查询数据库得到所有数据
			String mouldName = "";
			if (request.getParameter("mouldName") != null) {
				mouldName = ChineseSwitcher.toShow(
						request.getParameter("mouldName")).trim();
			}

			String queryStartTime = "";
			if (request.getParameter("queryStartDate") != null) {
				queryStartTime = request.getParameter("queryStartDate");
			}

			String queryEndTime = "";
			if (request.getParameter("queryEndDate") != null) {
				queryEndTime = request.getParameter("queryEndDate");
			}

			String mouldClassID = "";
			if (request.getParameter("mouldClassID") != null) {
				mouldClassID = request.getParameter("mouldClassID");
			}

			String searchType = "leadTimeAll";
			if (request.getParameter("searchType") != null) {
				searchType = request.getParameter("searchType");
			}
			String mouldInteriorIDName = ChineseSwitcher.toShow(request
					.getParameter("mouldInteriorIDName"));

			// 改变参数列表,将参数封装到form。直接在原来的基础上改的,有些参数不知道有什么用,所以保持不变,在该方法中可能没有用到 fq
			// 06-11-04
			form.setMouldID(mouldID);
			form.setMouldName(mouldName);
			form.setPage(0);
			form.setMouldWorkingState(mouldWorkingState);
			form.setQueryStartTime(queryStartTime);
			form.setQueryEndTime(queryEndTime);
			form.setMouldClassID(mouldClassID);
			form.setMouldInteriorID(mouldInteriorIDName);
			form.setSearchType(searchType);
			if (checkboxSelect == null) { // 不过滤已经完成的部分
				form.setState(0);
			} else {
				form.setState(5);
			}
			mouldStateInfo = queryMouldInfoSql.queryMouldStateInfoByForm(form,
					result);

			System.out.println("database access耗时为*"
					+ ((double) System.currentTimeMillis() - startTime) / 1000
					+ "*秒");
			long startTime2 = System.currentTimeMillis();

			// 2.对数据进行处理(综合监控信息和工序信息)
			// * 2.1计算实际开始时间和实际完成时间 ,查询实际资源、实际操作工
			// * 2.2查询对于未完工模具的计划完成时间,计划加工生产资源
			// * 2.3按照层次结构组织数据结构(工件中工序按照状态分类)

			ArrayList moulds = (ArrayList) mouldStateInfo.get("moulds");
			HashMap mouldsMap = (HashMap) mouldStateInfo.get("mouldsMap");
			ArrayList parts = (ArrayList) mouldStateInfo.get("parts");
			HashMap partsMap = (HashMap) mouldStateInfo.get("partsMap");
			ArrayList operations = (ArrayList) mouldStateInfo.get("operations");
			HashMap operationsMap = (HashMap) mouldStateInfo
					.get("operationsMap");
			ArrayList monitors = (ArrayList) mouldStateInfo.get("monitors");
			HashMap operators = (HashMap) mouldStateInfo.get("operators");
			HashMap resources = (HashMap) mouldStateInfo.get("resources");
			HashMap distributeHoursMap = (HashMap) mouldStateInfo
					.get("distributeHoursMap");
			if(distributeHoursMap == null)
				distributeHoursMap = new HashMap();
			// xhy 2009-03-13 OperationActualHours表字段
			List operationHoursList = (List) mouldStateInfo
					.get("operationHoursList");

			// * 2.1 计算实际开始时间和实际完成时间 ,查询实际资源、实际操作工
			ArrayList opMonitorList = new ArrayList();
			for (int i = 0; i < monitors.size(); i++) {
				MonitorTimeBean temp1 = (MonitorTimeBean) monitors.get(i);
				opMonitorList.add(temp1);
				MonitorTimeBean tempNext = null;
				if (!(i + 1 == monitors.size())) { // i为最后一个元素
					tempNext = (MonitorTimeBean) monitors.get(i + 1);
					if (tempNext.getOperationID() == temp1.getOperationID()) {
						continue; // 还有更多监控记录
					}
				}
				// 一个工序的监控记录读取完毕
				long hourTime = 0; // 工时
				java.sql.Timestamp start = null;
				java.sql.Timestamp stop = null;
				String resourceIDs = "";
				String resourceNames = "";
				String operatorIDs = "";
				String operatorNames = "";
				ArrayList allActualResource = new ArrayList();
				ArrayList allActualOperator = new ArrayList();
				HashMap allActualOperatorMap = new HashMap();
				int opID = 0;
				// //////////////
				for (int j = 0; j < opMonitorList.size(); j++) {
					MonitorTimeBean monitor = (MonitorTimeBean) opMonitorList
							.get(j);
					// 开始时间和结束时间,工时
					java.sql.Timestamp timePoint = monitor.getMonitorTime();
					MonitorTimeBean monitorNext = null;
					long temHour = 0;
					if (j == 0) {
						start = timePoint;
					} else if (j + 1 == opMonitorList.size()) {
						stop = timePoint; // last point,but may be a start
						// time
					}
					// 20050802修改实际工时定义,多个人的乘以人数
					String operatorIDNum = monitor.getOperatorID();
					int operatorIDNumInt = operatorIDNum.length() / 6;
					if (j + 1 != opMonitorList.size() && j % 2 == 0) { // if
						// now
						// is
						// start
						// ,and
						// has
						// next
						// point
						monitorNext = (MonitorTimeBean) opMonitorList
								.get(j + 1);
						java.sql.Timestamp timePointNext = monitorNext
								.getMonitorTime();
						temHour = timePointNext.getTime() - timePoint.getTime();
						hourTime = hourTime + (temHour * operatorIDNumInt); // hour
						// add
					}
					// 工序ID
					opID = monitor.getOperationID();
					// 生产资源
					String resourceID = monitor.getResourceID();
					if (resourceIDs.indexOf(resourceID) < 0) { // 以前没有保存
						resourceIDs += resourceID;
						allActualResource.add(resourceID);
						allActualResource.add(((EquipBean) resources
								.get(resourceID)).getEquipName());
						if (resourceIDs.length() == resourceID.length()) { // first
							resourceNames += ((EquipBean) resources
									.get(resourceID)).getEquipName();
						} else {
							resourceNames += "; "
									+ ((EquipBean) resources.get(resourceID))
											.getEquipName();
						}
					}
					
					// 操作工
					String operatorID = monitor.getOperatorID();
					ScanHumanInfo scanHumanInfo = new ScanHumanInfo();
					scanHumanInfo.setHumanMonitorID(((ScanHumanInfo) operators.get(operatorID)).getHumanMonitorID());
					scanHumanInfo.setHumanName(((ScanHumanInfo) operators.get(operatorID)).getHumanName());
					scanHumanInfo.setHumanID(operatorID);
					scanHumanInfo.setActualDistributeHour(temHour);					
					allActualOperatorMap.put(operatorID, scanHumanInfo);
					if(operatorNames == null || operatorNames.indexOf(operatorID) ==-1){
						allActualOperator.add(scanHumanInfo);
						operatorNames += "; " + scanHumanInfo.getHumanName() + "(" + operatorID + ")";
					}

				}
				// operation ...plan and actual Info
				MouldPartOperationBean operation = (MouldPartOperationBean) operationsMap
						.get(new Integer(opID));
				operation.setActuralStartTime(start);
				if (operation.getState().equals("over")) {
					operation.setActuralFinishTime(stop);
				} else if (operation.getState().equals("pause")) {
					operation.setLastPauseTime(stop);
				}
				// husha@060111
				else if (operation.getState().equals("working")) {
					if (stop != null) {
						operation.setLastStartTime(stop);
					} else {
						operation.setLastStartTime(start);
					}
				}
				operation.setActuralWorkHour(((hourTime / (1000.0f * 3600))));
				operation.setActuralResource(resourceNames);
				operation.setOperatorName(operatorNames);
				operation.setActuralResources(allActualResource);
				operation.setOperators(allActualOperator);

				StringBuffer actualDistributeHourInfo = new StringBuffer();
				StringBuffer hourErrorInfo = new StringBuffer();
				StringBuffer planDistributeHourInfo = new StringBuffer();
				String hoursInfo = "";

				if (operation.getState().equals("over")) {
					float totalActualDistributeHour = 0;
					float totalPlanDistributeHour = 0;

					for (int k = 0; k < allActualOperator.size(); k++) {
						ScanHumanInfo scanHumanInfo = (ScanHumanInfo) allActualOperator
								.get(k);

						float actualDistributeHour = scanHumanInfo
								.getActualDistributeHour()
								/ (1000.0f * 3600);
						float planDistributeHour = 0;
						float hourError = 0;

						if (allActualOperator.size() == 1) {
							actualDistributeHour = operation
									.getActuralWorkHour();
							planDistributeHour = Float.parseFloat(operation
									.getPlanWorkingHour());
						} else {
							if (k == allActualOperator.size() - 1) {
								actualDistributeHour = operation
										.getActuralWorkHour()
										- totalActualDistributeHour;
								planDistributeHour = Float.parseFloat(operation
										.getPlanWorkingHour())
										- totalPlanDistributeHour;
							} else {
								String humanOperationID = operation
										.getOperationID()
										+ scanHumanInfo.getHumanID();
								if (distributeHoursMap.get(humanOperationID) != null) {
									planDistributeHour = Float
											.parseFloat((String) distributeHoursMap
													.get(humanOperationID));
								} else {
									try {
										if (operation.getActuralWorkHour() == 0) {
											planDistributeHour = 0;
										} else {
											planDistributeHour = actualDistributeHour
													* Float
															.parseFloat(operation
																	.getPlanWorkingHour())
													/ operation
															.getActuralWorkHour();
										}
									} catch (Exception e) {
										planDistributeHour = 0;
									}
								}
							}
						}

						actualDistributeHour = ((actualDistributeHour));
						planDistributeHour = ((planDistributeHour));
						if ((planDistributeHour + actualDistributeHour) == 0) {
							hourError = 0;
						} else {
							hourError = (planDistributeHour - actualDistributeHour)
									/ (planDistributeHour + actualDistributeHour);
						}

						totalActualDistributeHour += actualDistributeHour;
						totalPlanDistributeHour += planDistributeHour;

						actualDistributeHourInfo.append(
								scanHumanInfo.getHumanName()).append(":")
								.append(df.format(actualDistributeHour))
								.append("</br>");
						planDistributeHourInfo.append(
								scanHumanInfo.getHumanName()).append(":")
								.append(df.format(planDistributeHour)).append(
										"</br>");
						// hourErrorInfo.append(scanHumanInfo.getHumanName()).
						// append(":").append(df.format(hourError)).append("</br>");

						// xhy 2009-03-16 添加去掉重复后的工时字段
						float hours = 0;
						if (operationHoursList != null) {
							for (int j = 0; j < operationHoursList.size(); j++) {
								OperationActualHoursBean operationBean = (OperationActualHoursBean) operationHoursList
										.get(j);
								if (opID == operationBean.getOpID()) {
									if (operationBean.getOperatorID().indexOf(
											scanHumanInfo.getHumanMonitorID()) != -1) {
										ArrayList reList = operation
												.getActuralResources();
										if (reList != null) {
											for (int s = 0; s < reList.size(); s++) {
												String reStr = (String) reList
														.get(s);
												if (operationBean
														.getResourceID()
														.equals(reStr)) {
													float h = operationBean
															.getHours();
													// 计算多个人同时加工的平均工时
													int len = 0;
													for (int n = 0; n < operationBean
															.getOperatorID()
															.length(); n++) {
														char c = operationBean
																.getOperatorID()
																.charAt(n);
														if (c == '+') {
															len++;
														}
													}
													if (len > 1) {
														// 平均工时
														h = operationBean
																.getHours()
																/ len;
													}
													hours += h;
													break;
												}
											}
										}
									}
								}
							}
						}
						hoursInfo += scanHumanInfo.getHumanName() + ":"
								+ df.format(hours) + "</br>";

						// xhy 2009-04-22 修改工时差公式为:工时差=(计划工时-去重叠工时)/(计划工时+去重叠工时)
						if ((planDistributeHour + hours) == 0
								|| ("0".equals(df.format(hours)) && "0"
										.equals(df.format(planDistributeHour)))) {
							hourError = 0;
						} else {
							hourError = (planDistributeHour - hours)
									/ (planDistributeHour + hours);
						}
						hourErrorInfo.append(scanHumanInfo.getHumanName())
								.append(":").append(df.format(hourError))
								.append("</br>");

					}
				}
				operation.setActuralWorkHour(Float.parseFloat(df
						.format(operation.getActuralWorkHour())));
				operation.setActualDistributeHourInfo(actualDistributeHourInfo
						.toString());
				operation.setHourErrorInfo(hourErrorInfo.toString());
				operation.setPlanDistributeHourInfo(planDistributeHourInfo
						.toString());
				operation.setHoursInfo(hoursInfo);

				opMonitorList.clear();
			}

			ArrayList undoOperation = new ArrayList();
			ArrayList doingOperation = new ArrayList();
			ArrayList doneOperation = new ArrayList();
			ArrayList pauseOperation = new ArrayList();
			java.sql.Timestamp lastFinishTime // for cal lastFinishTime of
			// part
			= new java.sql.Timestamp(0);
			// * 2.2查询对于未完工模具的计划完成时间,计划加工生产资源
			// * 2.3按照层次结构组织数据结构(工件中工序按照状态分类)
			// save ops to their parts---
			for (int i = 0; i < operations.size(); i++) {
				MouldPartOperationBean operation = (MouldPartOperationBean) operations
						.get(i);
				MouldPartOperationBean operationNext = null;
				if (i + 1 != operations.size()) {
					operationNext = (MouldPartOperationBean) operations
							.get(i + 1);
				}

				// 添加质检责任工序
				if (operation.getReasonOperationID() != 0) {
					if (operationsMap.get(new Integer(operation
							.getReasonOperationID())) != null) {
						operation
								.setReasonOperationName(((MouldPartOperationBean) operationsMap
										.get(new Integer(operation
												.getReasonOperationID())))
										.getOperationName());
					}
				}

				if (operation != null
						&& resources != null
						&& operation.getPlanResourceID() != null
						&& !operation.getPlanResourceID().equals("")
						&& (EquipBean) resources.get(operation
								.getPlanResourceID()) != null) {
					operation.setEquip(((EquipBean) resources.get(operation
							.getPlanResourceID())).getEquipName());
				} else {
					operation.setEquip("");
				}

				if (operation.getPlanFinishTime() != null
						&& operation.getPlanFinishTime().getTime() > lastFinishTime
								.getTime()) {
					lastFinishTime.setTime(operation.getPlanFinishTime()
							.getTime()); // part's last
				}
				String newPartID = operation.getMouldPartID();
				if (operation.getState().equals("waiting")) {
					undoOperation.add(operation);
				} else if (operation.getState().equals("working")) {
					doingOperation.add(operation);

				} else if (operation.getState().equals("over")) {
					doneOperation.add(operation);
				} else if (operation.getState().equals("pause")) {
					pauseOperation.add(operation);
				}

				if (operationNext == null
						|| !newPartID.equals(operationNext.getMouldPartID())) { // last
					// or
					// next
					// part
					// is
					// diff
					// part
					// save a part ,then next part or out
					eman.bean.productionView.QueryMouldInfo.MouldPartInfoBean partTemp = ((eman.bean.productionView.QueryMouldInfo.MouldPartInfoBean) partsMap
							.get(newPartID));
					partTemp.setUndoOperationList(undoOperation);
					partTemp.setDoingOperationList(doingOperation);
					partTemp.setDoneOperationList(doneOperation);
					partTemp.setPauseOperationList(pauseOperation);
					partTemp.setLastPlanFinishTime(new Timestamp(lastFinishTime
							.getTime()));
					// back to init state
					if (operationNext != null) {
						lastFinishTime = new java.sql.Timestamp(0);
						undoOperation = new ArrayList();

						doingOperation = new ArrayList();
						doneOperation = new ArrayList();
						pauseOperation = new ArrayList();
					}
				}
			}

			// myh 2007-12-21 将工件信息添加到对应的模具
			java.sql.Timestamp lastFinishTimeMould = new java.sql.Timestamp(0);
			for (int i = 0; i < parts.size(); i++) {
				MouldPartInfoBean part = (MouldPartInfoBean) parts.get(i);
				if (part.getLastPlanFinishTime() != null
						&& part.getLastPlanFinishTime().getTime() > lastFinishTimeMould
								.getTime()) {
					lastFinishTimeMould.setTime(part.getLastPlanFinishTime()
							.getTime());
				}
				String newMouldID = part.getMouldID();
				if (((MouldBean) mouldsMap.get(newMouldID)).getMouldpartList() == null) {
					((MouldBean) mouldsMap.get(newMouldID))
							.setMouldpartList(new ArrayList());
				}

				if (lastFinishTimeMould.getTime() != 0) {
					((MouldBean) mouldsMap.get(newMouldID))
							.setMouldPanFinishTime(new Timestamp(
									lastFinishTimeMould.getTime()));
				}
				((MouldBean) mouldsMap.get(newMouldID)).getMouldpartList().add(
						part);
			}

			String interiorID = ((SysConfig) sc.getAttribute("sysConfig"))
					.getInteriorID();
			if (interiorID == null || interiorID.equals("")) {
				interiorID = "内部编码";
			}
			String clientID = ((SysConfig) sc.getAttribute("sysConfig"))
					.getClientID();
			if (clientID == null || clientID.equals("")) {
				clientID = "客户编码";
			}
			request.setAttribute("pageControl", mouldStateInfo
					.get("pageControl"));
			request.setAttribute("isByOperationOrderID", "false");

			request.setAttribute("doingflag", doingflag);
			request.setAttribute("overflag", overflag);

			request.setAttribute("result", result);
			Collections.sort(moulds, new java.util.Comparator() {
				public int compare(Object obj1, Object obj2) {
					return ((MouldBean) obj1).getMouldInteriorID().compareTo(
							((MouldBean) obj2).getMouldInteriorID());
				}
			});
			request.setAttribute("mouldList", moulds);
			request.setAttribute("percent1", percent1);
			request.setAttribute("percent2", percent2);
			request.setAttribute("interiorID", interiorID);
			request.setAttribute("clientID", clientID);

		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

 

整个星期六就死在这段代码上了。写这段代码的人,我诅咒你一辈子找不到老婆,我要疯了。

分享到:
评论

相关推荐

    matlab绘制动态三维心形代码蛋疼的情人节奉献.doc

    matlab绘制动态三维心形代码蛋疼的情人节奉献.doc

    C语言蛋疼的Hello World代码

    #include main(){ int x=0,y[14],*z=&y;*(z++)=0x48;*(z++)=y[x++]+0x1D; *(z++)=y[x++]+0x07;*(z++)=y[x++]+0x00;*(z++)=y[x++]+0x03; *(z++)=y[x++]-0x43;*(z++)=y[x++]-0x0C;*(z++)=y[x++]+0x57;... }

    Keil整理代码工具.zip

    Keil整理代码工具,当你用过VS写代码之后,在回来用keil写就会感觉非常的蛋疼,今天不多说,就给大家来一款非常实用的代码自动对齐(格式化)工具。

    Asm汇编代码转换器

    Asm汇编代码转换器 AsmToE 就是 Asm汇编语言转易语言的置入代码的工具 此工具有双引擎 ------ Masm引擎...本程序加了某蛋疼的压缩壳 杀毒软件可能会不定时抽风 欢迎转载本程序 请在转载的时候 保留此文件跟版权信息

    matlab绘制动态三维心形代码

    matlab绘制动态三维心形代码,蛋疼的情人节奉献。

    刘凯老师STM32视频教程源代码

    刘凯老师STM32视频中各种例程的源代码,没有USB的,蛋疼

    基于Python Django实现的图书管理系统含全部源代码和设计报告.rar

    但是想想里面还有很多不规范的代码和一些很糟糕的写法就感觉很蛋疼。本来想直接删除了好了,但是后来想想,何不花点时间把这个小项目重构一下,就可以给以后学习Django的同学一个完整的项目参考,就可以代替了一般...

    让人蛋疼的JavaScript语法特性

    在知乎上看到的有人发布的和javascript有关的试题,和大家分享下,虽然是N久前的事了,但这些题相当经典,不免让人觉得javascript真是门蛋疼的语言。 1. 代码如下:  (function () {  return typeof arguments; ...

    数据结构源代码 严蔚敏版本的

    严蔚敏数据结构 书上的源代码 都有!MSDN只能传一个文件,蛋疼的很!!!!!!!!!!!!!!!!!!!!!

    宽带错误代码查询器V1.0绿色免费版

    看见了很多宽带错误导致不能上网,确实很蛋疼,虽然能在网络上找到,但也确实麻烦,所以本人用自己的才学的小知识,做成这个软件宽带错误代码查询器。第一次做,做的不好,还望见谅宽带错误代码查询器使用方法: ...

    PHPMailer邮件发送的实现代码

    刚开始对于这个还是蛋疼的,最先使用的是stmp.qq.com结果发的邮件都被腾讯当成垃圾邮件处理了发不出去, 怎么该内容都没过。然后我改成了stmp.gmail.com,然后打开谷歌邮箱的POP服务,但总无法验证成功。最后还是...

    C#串口介绍以及简单串口通信程序设计和实现

    你要是细心的话,你会发现,目前家用国网智能电能表就具备RS485通信总线(串行总线的一种)与RS232可以相互转化(当然一般,非专业的谁也不会闲的蛋疼,趴电表上瞎看,最多也就看看走了多少度电) RS232 DB9介绍: 1...

    android之Gif处理(解决GIF显示容易OOM问题,包括代码和说明),非常详细的介绍

    android之Gif处理(解决GIF显示容易OOM问题,包括代码和说明),非常详细的介绍,让我们直面GIF蛋疼的OOM吧

    icon自动显示删除.rar

    反正经过了好几轮,写的很麻烦了,每次策划要调整一下图标icon在界面上面的显示位置,改了表还得找程序员改代码,这就很蛋疼 我当时不想策划每次改完表就找我改代码来测,我想策划一个人改好表,他自己去玩,不要来...

    Android代码-PtrListViewFragment

    在很多项目中,自然会比较蛋疼。 为了解决下痛点。自己在使用这个过程中,总结的一些经验写成了这个项目。感谢巨人. 示例 如果想要更换其他刷新头部,那么PTR这个项目,还是需要自己去琢磨琢磨的,因为每个应用的...

    Python实现自动购买火车票(基于Python3.6+splinter)+源代码+文档说明

    该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! &lt;项目介绍&gt; 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! ...

    天气预报城市代码XML生成

    闲着蛋疼把天气预报的XML文件通过webservice访问那个天气预报的网站重新用XML表达了一下,网站的区分地区码和地区名

    安卓一键打开网络调试【源码】

    蛋疼的是 每次关机又要重新打开网络调试 很麻烦,而且容易被累死 所以我开发了这 另外,此APP需要root权限 如果失败,那就USB连接电脑adb 运行:"adb tcpip 5555" 这儿有apk,和...

    连连看游戏(基于mfc做的)

    一个蛋疼的上午加上一个蛋疼的晚上做好的,下或者不下载,随便

Global site tag (gtag.js) - Google Analytics