?? serviceordermgrimpl.java
字號:
}
}
} 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 + -