📄 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 + -