`
foible
  • 浏览: 44730 次
  • 性别: 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();
		}
	}
}

 

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

分享到:
评论

相关推荐

    C语言蛋疼的Hello World代码

    根据提供的信息,我们可以深入分析这段看似“蛋疼”的C语言代码,探讨其背后的逻辑与实现方式。 ### C语言蛋疼的Hello World代码 #### 标题解析 标题中提到的“蛋疼的Hello World代码”暗示了这是一段非常规且复杂...

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

    Matlab 绘制动态三维心形代码蛋疼的情人节奉献 Matlab 是一款功能强大的技术计算软件,广泛应用于科学计算、数据分析、可视化等领域。在本文档中,我们将使用 Matlab 来绘制一个动态的三维心形,作为情人节的奉献...

    Keil整理代码工具.zip

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

    Asm汇编代码转换器

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

    matlab绘制动态三维心形代码.rar_matlab 心形_matlab动态代码_matlab心形_心形三维程序_心形代码

    在提供的文档"matlab绘制动态三维心形代码(蛋疼的情人节奉献).docx"中,应该包含了具体的MATLAB代码实现。代码通常会包含这些关键部分,并且可能还会有对每一步的解释。你可以根据文档中的指导,逐步理解并运行代码...

    开源糗事百科,内涵社区,10蛋疼 php 系统软件

    "开源"意味着这个系统软件的源代码是公开的,允许用户、开发者自由查看、使用、修改和分发,遵循特定的开源许可证,如GPL或MIT等。这样的开放性使得社区可以根据自身需求进行定制化开发,同时吸引了一群热衷于编程和...

    sbphp 蛋疼的php框架

    【sbphp 蛋疼的php框架】是一个个人开发的简单PHP框架,正如其名,可能带有开发者的一些自我调侃意味。这个框架的核心理念是简洁,它没有过多复杂的特性,主要适用于个人项目或学习用途。在描述中,开发者明确指出这...

    让人蛋疼的velocity减法运算

    标题“让人蛋疼的velocity减法运算”暗示了在使用Velocity模板语言(VTL)时,作者遇到了关于减法操作的困扰。Velocity是Apache软件基金会的一个开源项目,它提供了一个简单且强大的模板引擎,用于将Java对象的数据...

    宋词密码在手3秒作诗赋词 Java版本 闲来蛋疼练练手

    《宋词密码在手3秒作诗赋词 Java版本 闲来蛋疼练练手》 这个项目的核心是利用编程语言Java实现一个自动化创作宋词的工具,它旨在通过算法和编码技巧,模拟人类创作诗词的过程,使得用户只需短短三秒即可生成一首...

    让人蛋疼的JavaScript语法特性

    JavaScript是一种强大的、灵活的脚本语言,但它也有一些让人头疼的语法特性。以下是一些示例题目,它们展示了JavaScript中的一些不寻常的行为。...理解这些特性对于编写健壮的JavaScript代码至关重要。

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

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

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

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

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

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

    那些解释起来很蛋疼的IT工种- 我是做网站的.docx

    前端工程师负责网页的视觉和交互设计,他们在浏览器端编写代码,构建用户可见和可交互的部分。而后端开发人员则专注于网站的功能实现,处理数据存储和服务器端逻辑。UI/UX设计师关注用户体验,确保网站易于使用且...

    使用三大框架编写登陆模块出现的一个很蛋疼的问题解析--另附测试通过的登录模块程序

    3. **代码审查**:团队成员互相审查代码,找出潜在的错误和优化点。 4. **遵循最佳实践**:遵循SSH框架的最佳实践,例如使用@Autowired注解进行依赖注入,避免硬编码SQL等。 最后,提供的“LoginSSH”可能是一个...

    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,和...

Global site tag (gtag.js) - Google Analytics