⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serviceordermgrimpl.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				}
			}
		} catch (MailSendException me) {
			logger.debug(me.getMessage());
			throw new ApplicationException(me.getMessage());
		}
		return justSaveSO.getId();
	}
	
	//判断要上传的文件是否附合条件
	public String checkFile(ActionForm form){
		String resultMsg = null;
		XMLFileVo XMLFileVo = ConfigMgr.getInstance().getXmlFileVo();
		int size = XMLFileVo.getSize();
		logger.debug("系统限制的大小为:"+size);
		String [] expandNames = XMLFileVo.getExpandNames().split(",");
		List<String> lString = new ArrayList<String>();
		for(int i=0;i<expandNames.length;i++){
			lString.add(expandNames[i]);
		}
		Hashtable fileh = form.getMultipartRequestHandler().getFileElements();// form是传过来的参数
		for (Iterator it = fileh.keySet().iterator(); it.hasNext();) {
			String key = (String) it.next();
			FormFile formfile = (FormFile) fileh.get(key);// 获取一个FormFile
			logger.debug("上传的文件大小是:"+formfile.getFileSize());
			if(formfile.getFileSize()>size){
				resultMsg = Constants.OVER_SIZE_FILE_EXCEPTION;
				break;
			}
			if (formfile.getFileName() != null && !"".equals(formfile.getFileName())) {
				String expandName = formfile.getFileName().substring(formfile.getFileName().lastIndexOf('.')+1);   
				if(!lString.contains(expandName)){
					resultMsg = Constants.NO_UPLOAD_FILE_EXCEPTION;
					break;
				}
			}
		}
		return resultMsg;
	}
	
	// 编辑问题单
	public void editServiceOrder(ServiceOrderForm serviceOrderForm,ActionForm form,
			HttpServletRequest request) {
		ServiceOrder serviceOrder = null;
		try {
			if (serviceOrderForm.getId() != null) {
				serviceOrder = serviceOrderDAO.findById(serviceOrderForm
						.getId());
				copyForm(serviceOrder, serviceOrderForm,form, request);//修改
				serviceOrderDAO.attachDirty(serviceOrder);
			}
		} catch (Exception e) {
			e.printStackTrace();
			throw new ApplicationException(e.getMessage());
		}
	}
	public void copyForm(ServiceOrder serviceOrder,
			ServiceOrderForm serviceOrderForm,ActionForm form,HttpServletRequest request) throws DateFormatException {
		logger.debug("开始copy");
		if (serviceOrder != null) {
			// 判断客户是否有改动
			if (serviceOrderForm.getCustomerId() != 0
					&& serviceOrderForm.getCustomerId() != serviceOrder
							.getCustomer().getId()) {
				serviceOrder.setCustomer(getCustomerById(serviceOrderForm.getCustomerId()));
			}
			// 判断联系人是否有改动
			if (serviceOrderForm.getContactId() != 0
					&& serviceOrderForm.getCategoryId() != serviceOrder
							.getCustomerContact().getId()) {
				serviceOrder.setCustomerContact(getContactById(serviceOrderForm.getContactId()));
			}
			// 判断类别是否有改动
			if (serviceOrderForm.getCategoryId() != 0
					&& serviceOrderForm.getCategoryId() != serviceOrder
							.getCategory().getId()) {
				serviceOrder.setCategory(categoryDAO.findById(serviceOrderForm
						.getCategoryId()));
			}
			// 判断故障级别是否有改动
			if (serviceOrderForm.getFaultLevelId() != 0
					&& serviceOrderForm.getFaultLevelId() != serviceOrder
							.getFaultLevel().getId()) {
				serviceOrder.setFaultLevel(faultLevelDAO
						.findById(serviceOrderForm.getFaultLevelId()));
			}
			// 判断来源是否有改动
			if (serviceOrderForm.getSourceId() != 0
					&& serviceOrderForm.getSourceId() != serviceOrder
							.getSource().getId()) {
				serviceOrder.setSource(sourceDAO.findById(serviceOrderForm
						.getSourceId()));
			}
			// 截止日期
			if (serviceOrderForm.getTimeSliceStr() != null) {
				serviceOrder.setTimeSlice(DateTimeTool
						.getDateByStr2(serviceOrderForm.getTimeSliceStr()));
			}
			serviceOrder.setContent(serviceOrderForm.getContent());//问题描述
			//判断是否要重新指派工程师
			int userId = 0;
			String userIdStr = request.getParameter("userId");
			logger.debug("工程师的ID是:" + userIdStr);
			if (userIdStr != null && !"".equals(userIdStr)) {
				userId = Integer.parseInt(userIdStr);
			}
			User engineer = serviceOrderDAO.getUserById(
					userId);
			if(engineer!=null && engineer.getId()!=serviceOrder.getEngineer().getId()){
				serviceOrder.setEngineer(engineer);
			}
			/****************附件信息的修改************/
			Set<ServiceOrderFile> ServiceOrderFileSet = serviceOrder.getServiceOrderFiles();
			Iterator<ServiceOrderFile> sofIterator = ServiceOrderFileSet.iterator();
			if(ServiceOrderFileSet.size()>0){
				while(sofIterator.hasNext()){
					ServiceOrderFile serviceOrderFile = sofIterator.next();
					//判断该文件是否要删除
					String delFlag = request.getParameter("delFlag"+serviceOrderFile.getId());
					if(delFlag!=null){
						deleteSOFileById(serviceOrderFile.getId());//删除数据库文件
						//同时删除硬盘上的文件
						String path = ConfigMgr.getInstance().getXmlFileVo().getPath();// 取得上传的路径
						String file = path+serviceOrderFile.getFileName();
						if(new File(file).exists()){
							new File(file).delete();
							logger.debug("删除硬盘上的文件成功");
						}
					}
				}
			}
			// 上传
			Hashtable fileh = form.getMultipartRequestHandler().getFileElements();// form是传过来的参数
			for (Iterator it = fileh.keySet().iterator(); it.hasNext();) {
				ServiceOrderFile soFile = new ServiceOrderFile();
				String key = (String) it.next();
				FormFile formfile = (FormFile) fileh.get(key);// 获取一个FormFile
				String fileName = "";
				if (formfile.getFileName() != null
						&& !"".equals(formfile.getFileName())) {
					String path = ConfigMgr.getInstance().getXmlFileVo().getPath();// 取得上传的路径
					logger.debug(formfile.getFileName());
					logger.debug("要上传的路径是:" + path);
					fileName = Upload.upload(formfile, path);
					soFile.setFileName(fileName);
					soFile.setPath(path);
					soFile.setServiceOrder(serviceOrder);
					try {
						saveSOFile(soFile);
					} catch (RuntimeException re) {
						logger.debug(re.getMessage());
						throw new ApplicationException(
								Constants.ADD_SERVICEORDER_EXCEPTION);
					}
				}
			}
			// 上传结束
			/**end**/
			
			/****************过程信息的修改************/
			Set<ProcessCource> processCourceSet = serviceOrder.getProcessCources();
			Iterator<ProcessCource> pcIterator = processCourceSet.iterator();
			if (processCourceSet.size() > 0) {
				while (pcIterator.hasNext()) {
					ProcessCource processCource = pcIterator.next();
					String startTime = request.getParameter("startTime"
							+ processCource.getId());
					String endTime = request.getParameter("endTime"
							+ processCource.getId());
					String describes = request.getParameter("describes"
							+ processCource.getId());
					//时间等于null表示用户不能修改该处理过程,
					if (startTime != null) {
						processCource.setStartTime(DateTimeTool
								.getDateByStr2(startTime));
						if (endTime != null) {
							processCource.setStartTime(DateTimeTool
									.getDateByStr2(endTime));
						}
						processCource.setDescribes(describes);
						try{
						serviceOrderDAO.updateProcessCource(processCource);
						}catch(Exception e){
							logger.warn(e.getMessage());
							throw new ApplicationException(e.getMessage());
						}
						logger.debug("修改处理过程成功");
					}
				}
			}
			/**end**/
			
			/************回访信息的更改******/
			//*******判断该问题单是否是已回访的
			if(serviceOrder.getState().equals(Constants.SERVICE_ORDER_STATE_HAD_VISIT)){
				serviceOrder.setSatisfaction(serviceOrderForm.getSatisfaction());
				serviceOrder.setVisitTime(DateTimeTool
						.getDateByStr2(serviceOrderForm.getVisitTime()));
				serviceOrder.setReason(serviceOrderForm.getReason());
			}
			/************end******/
		}
	}
	
	// 保存处理过程
	public void newProcessCource(int id, HttpServletRequest request) {
		String finishFlag = request.getParameter("finishFlag");
		ServiceOrder serviceOrder = null;
		try {
			serviceOrder = findById(id);
			// 添加处理过程
			if (serviceOrder != null) {
				for (int i = 1; i <= 15; i++) {
					ProcessCource processCource = new ProcessCource();
					processCource.setServiceOrder(serviceOrder);
					String startTime = request.getParameter("startTime" + i);
					if (startTime != null && !"".equals(startTime)) {
						if (SessionMgr.getCustSession(request) != null) {
							processCource.setUser(SessionMgr
									.getCustSession(request));
						}
						processCource.setStartTime(DateTimeTool
								.getDateByStr2(startTime));
						String endTime = request.getParameter("endTime" + i);
						if (endTime != null && !"".equals(endTime)) {
							processCource.setEndTime(DateTimeTool
									.getDateByStr2(endTime));
						}
						String describes = request
								.getParameter("describes" + i);
						processCource.setDescribes(describes);
						logger.debug("开始时间是:" + startTime);
						logger.debug("结束时间是:" + endTime);
						logger.debug("描述是:" + describes);
						saveProcessCource(processCource);
					}
				}
			}
			// end
			if (finishFlag != null) {
				serviceOrder.setState(Constants.SERVICE_ORDER_STATE_DONE_END);
				updateServiceOrder(serviceOrder);
			}
		} catch (Exception e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
	}
	
	//通过ID取得附件
	public ServiceOrderFile getSOFileById(int soFileId){
		return serviceOrderDAO.getSOFileById(soFileId);
	}
	
	/******************************用户 客户 联系人 调用的方法*****************************/
	
	// 取所有的用户进行分页显示--指派
	public Page getUserPage(String familyName, String path, int currentPage,
			int rowsPerPage) throws ApplicationException {
		Page page = null;
		int count = 0;
		List<User> userList = null;
		try {
			userList = serviceOrderDAO.getUserPage(familyName, path, currentPage, rowsPerPage);
			count = serviceOrderDAO.getUserPageCount(familyName);
			page = new Page(path,count,currentPage,rowsPerPage,userList);
		} catch (RuntimeException re) {
			logger.debug(re.getMessage());
		}
		return page;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -