2018-03-06 10:36:15 +08:00
|
|
|
|
package com.nis.web.controller.configuration;
|
|
|
|
|
|
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
import java.util.HashMap;
|
2018-03-06 10:36:15 +08:00
|
|
|
|
import java.util.List;
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
import java.util.Properties;
|
2018-03-06 10:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
2018-03-19 14:34:39 +08:00
|
|
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
2018-03-06 10:36:15 +08:00
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
|
|
|
import org.springframework.ui.Model;
|
2018-12-24 19:16:17 +08:00
|
|
|
|
import org.springframework.util.StringUtils;
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
2018-03-06 10:36:15 +08:00
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
|
|
|
|
|
|
|
|
import com.nis.domain.Page;
|
|
|
|
|
|
import com.nis.domain.configuration.RequestInfo;
|
|
|
|
|
|
import com.nis.domain.configuration.TaskInfo;
|
2018-12-24 19:16:17 +08:00
|
|
|
|
import com.nis.domain.log.BaseLogEntity;
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import com.nis.util.Constants;
|
2018-12-24 19:16:17 +08:00
|
|
|
|
import com.nis.util.DateUtils;
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import com.nis.util.StringUtil;
|
|
|
|
|
|
import com.nis.util.excel.ExcelField;
|
2018-03-06 10:36:15 +08:00
|
|
|
|
import com.nis.web.controller.BaseController;
|
|
|
|
|
|
import com.nis.web.service.configuration.RequestInfoService;
|
|
|
|
|
|
|
2018-12-17 00:21:27 +08:00
|
|
|
|
import jersey.repackaged.com.google.common.collect.Lists;
|
|
|
|
|
|
|
2018-03-06 10:36:15 +08:00
|
|
|
|
@Controller
|
|
|
|
|
|
@RequestMapping("${adminPath}/cfg/request")
|
|
|
|
|
|
public class RequestInfoController extends BaseController{
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
private RequestInfoService requestInfoService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
*来函列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = {"list",""})
|
|
|
|
|
|
public String list(RequestInfo requestInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
|
2018-07-16 14:21:21 +08:00
|
|
|
|
Page<RequestInfo> page = requestInfoService.findRequestInfo(new Page<RequestInfo>(request, response,"r"), requestInfo);
|
2018-03-06 10:36:15 +08:00
|
|
|
|
model.addAttribute("page", page);
|
|
|
|
|
|
return "/cfg/requestList";
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 进入用户添加或修改页面
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value={"form"})
|
|
|
|
|
|
public String form(RequestInfo requestInfo, Model model) {
|
|
|
|
|
|
TaskInfo taskInfo = new TaskInfo();
|
|
|
|
|
|
taskInfo.setId(requestInfo.getTaskId());
|
|
|
|
|
|
showTask(taskInfo,model);
|
|
|
|
|
|
if(requestInfo.getId()!=null){
|
2018-12-17 00:21:27 +08:00
|
|
|
|
Integer functionId=requestInfo.getFunctionId();
|
2018-03-06 10:36:15 +08:00
|
|
|
|
requestInfo = requestInfoService.getRequestInfoById(requestInfo.getId());
|
2018-12-17 00:21:27 +08:00
|
|
|
|
requestInfo.setFunctionId(functionId);
|
2018-03-06 10:36:15 +08:00
|
|
|
|
model.addAttribute("requestInfo", requestInfo);
|
|
|
|
|
|
}else{
|
|
|
|
|
|
model.addAttribute("requestInfo", requestInfo);
|
|
|
|
|
|
}
|
|
|
|
|
|
return "/cfg/requestForm";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 新增/修改
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "saveOrUpdate")
|
|
|
|
|
|
public String saveOrUpdate(RequestInfo requestInfo, HttpServletRequest request, Model model, RedirectAttributes redirectAttributes) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
if(requestInfo.getId()!=null){
|
|
|
|
|
|
// 保存用户信息
|
|
|
|
|
|
logger.info(requestInfo.getId()+"修改成功");
|
|
|
|
|
|
requestInfoService.saveOrUpdate(requestInfo);
|
2018-11-08 14:52:58 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","save_success");
|
2018-03-06 10:36:15 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
if (!"true".equals(checkRequestNumber(requestInfo.getRequestNumber()))){
|
|
|
|
|
|
logger.info(requestInfo.getRequestNumber()+"重复数据");
|
2018-12-17 00:21:27 +08:00
|
|
|
|
addMessage("error",model,"save_failed");
|
2018-03-06 10:36:15 +08:00
|
|
|
|
return form(requestInfo, model);
|
|
|
|
|
|
}
|
|
|
|
|
|
// 保存用户信息
|
|
|
|
|
|
requestInfoService.saveOrUpdate(requestInfo);
|
2018-11-08 14:52:58 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","save_success");
|
2018-03-06 10:36:15 +08:00
|
|
|
|
logger.info(requestInfo.getId()+"保存成功");
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
logger.error(e.getMessage());
|
|
|
|
|
|
e.printStackTrace();
|
2018-12-17 00:21:27 +08:00
|
|
|
|
addMessage(model,"error","save_failed");
|
2018-03-06 10:36:15 +08:00
|
|
|
|
}
|
2018-12-17 00:21:27 +08:00
|
|
|
|
return "redirect:" + adminPath + "/cfg/request/list?functionId="+requestInfo.getFunctionId()+"&repage";
|
2018-03-06 10:36:15 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 验证是否有效
|
|
|
|
|
|
*/
|
|
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "checkRequestNumber")
|
|
|
|
|
|
public String checkRequestNumber(String requestNumber) {
|
|
|
|
|
|
if (requestNumber !=null && requestInfoService.getRequestInfoByRequestNumber(requestNumber) == null) {
|
|
|
|
|
|
return "true";
|
|
|
|
|
|
}
|
|
|
|
|
|
return "false";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2018-03-07 14:30:56 +08:00
|
|
|
|
* 审核通过
|
2018-03-06 10:36:15 +08:00
|
|
|
|
* @param requestInfo
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "requestExamine")
|
2018-12-17 00:21:27 +08:00
|
|
|
|
public String requestExamine(Integer functionId,String ids, Model model,RedirectAttributes redirectAttributes){
|
2018-03-12 15:54:21 +08:00
|
|
|
|
String[] exId = ids.split(",");
|
|
|
|
|
|
requestInfoService.requestExamine(exId);
|
2018-12-17 00:21:27 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","audit_success");
|
|
|
|
|
|
return "redirect:" + adminPath + "/cfg/request/list?functionId="+functionId+"&repage";
|
2018-03-06 10:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
2018-03-07 14:30:56 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 审核未通过
|
|
|
|
|
|
* @param requestInfo
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "requestExamineNo")
|
2018-12-17 00:21:27 +08:00
|
|
|
|
public String requestExamineNo(Integer functionId,String ids, Model model,RedirectAttributes redirectAttributes){
|
2018-03-12 15:54:21 +08:00
|
|
|
|
String[] noId = ids.split(",");
|
|
|
|
|
|
requestInfoService.requestExamineNo(noId);
|
2018-12-17 00:21:27 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","audit_success");
|
|
|
|
|
|
return "redirect:" + adminPath + "/cfg/request/list?functionId="+functionId+"&repage";
|
2018-03-07 14:30:56 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
2018-03-06 10:36:15 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 取消审核
|
|
|
|
|
|
* @param requestInfo
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "requestCancelExamine")
|
2018-12-17 00:21:27 +08:00
|
|
|
|
public String requestCancelExamine(Integer functionId,String ids, Model model,RedirectAttributes redirectAttributes){
|
2018-03-12 15:54:21 +08:00
|
|
|
|
String[] canclelId = ids.split(",");
|
|
|
|
|
|
requestInfoService.requestCancelExamine(canclelId);
|
2018-12-17 00:21:27 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","audit_success");
|
|
|
|
|
|
return "redirect:" + adminPath + "/cfg/request/list?functionId="+functionId+"&repage";
|
2018-03-06 10:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 删除
|
|
|
|
|
|
* @param requestInfo
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value = "delete")
|
2018-12-17 00:21:27 +08:00
|
|
|
|
public String delete(Integer functionId,String ids, Model model,RedirectAttributes redirectAttributes){
|
2018-03-12 15:54:21 +08:00
|
|
|
|
String[] delId = ids.split(",");
|
|
|
|
|
|
requestInfoService.delete(delId);
|
2018-11-08 14:52:58 +08:00
|
|
|
|
addMessage(redirectAttributes,"success","delete_success");
|
2018-12-17 00:21:27 +08:00
|
|
|
|
return "redirect:" + adminPath + "/cfg/request/list?functionId="+functionId+"&repage";
|
2018-03-06 10:36:15 +08:00
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 查询专项任务
|
|
|
|
|
|
* @param taskInfo
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
*/
|
|
|
|
|
|
public void showTask(TaskInfo taskInfo ,Model model){
|
|
|
|
|
|
List<TaskInfo> taskInfos = requestInfoService.showTask(taskInfo);
|
|
|
|
|
|
model.addAttribute("taskInfos", taskInfos);
|
|
|
|
|
|
}
|
2018-03-12 15:54:21 +08:00
|
|
|
|
|
2018-11-09 21:11:09 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 配置取消审核操作时选择来函
|
|
|
|
|
|
* @param model
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
@RequestMapping(value="requestSelectInfo")
|
|
|
|
|
|
public String requestSelectInfo(Model model){
|
|
|
|
|
|
List<RequestInfo> requestInfos=requestInfoService.getValidRequestInfo();
|
|
|
|
|
|
model.addAttribute("requestInfos", requestInfos);
|
|
|
|
|
|
return "/basics/requestSelectInfo";
|
|
|
|
|
|
}
|
2018-12-17 00:21:27 +08:00
|
|
|
|
//配置导出
|
|
|
|
|
|
@RequestMapping(value = "exportRequestInfo")
|
2018-12-24 19:16:17 +08:00
|
|
|
|
public void exportTaskInfo(Model model,HttpServletRequest request,HttpServletResponse response, String exType,String hcolumn,
|
2018-12-17 00:21:27 +08:00
|
|
|
|
@ModelAttribute("requestInfo")RequestInfo entity,String ids,RedirectAttributes redirectAttributes){
|
|
|
|
|
|
try {
|
|
|
|
|
|
//export data info
|
|
|
|
|
|
List<String> titleList=new ArrayList<String>();
|
|
|
|
|
|
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
|
|
|
|
|
|
Map<String, List> dataMap=new HashMap<String, List>();
|
|
|
|
|
|
Map<String, String> noExportMap=new HashMap<String, String>();
|
|
|
|
|
|
//导出选中记录
|
|
|
|
|
|
List<RequestInfo> list=Lists.newArrayList();
|
|
|
|
|
|
titleList.add(entity.getMenuNameCode());
|
|
|
|
|
|
classMap.put(entity.getMenuNameCode(), RequestInfo.class);
|
|
|
|
|
|
Field[] fields=RequestInfo.class.getDeclaredFields();
|
|
|
|
|
|
StringBuffer column=new StringBuffer();
|
|
|
|
|
|
Properties props= this.getMsgProp();
|
|
|
|
|
|
for(Field f: fields) {
|
|
|
|
|
|
ExcelField ex=f.getAnnotation(ExcelField.class);
|
|
|
|
|
|
if(ex!=null) {
|
|
|
|
|
|
String title=ex.title();
|
|
|
|
|
|
if(entity.getColumns().indexOf(props.getProperty(title, title))==-1) {
|
|
|
|
|
|
column.append(","+title);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if(column.toString().length()>0) {
|
|
|
|
|
|
column.append(",");
|
|
|
|
|
|
}
|
2018-12-24 19:16:17 +08:00
|
|
|
|
|
|
|
|
|
|
if(entity.getBeginDate()==null){
|
|
|
|
|
|
hcolumn+=",request_time,";
|
|
|
|
|
|
}
|
|
|
|
|
|
if(entity.getDobeginDate()==null){
|
|
|
|
|
|
hcolumn+=",edit_time,";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(!StringUtils.isEmpty(hcolumn)){
|
|
|
|
|
|
column.append(","+hcolumn+",");
|
|
|
|
|
|
}
|
2018-12-17 00:21:27 +08:00
|
|
|
|
noExportMap.put(entity.getMenuNameCode(),column.toString());
|
|
|
|
|
|
if(!StringUtil.isEmpty(ids)){
|
|
|
|
|
|
for(String id:ids.split(",")){
|
|
|
|
|
|
Long.parseLong(id);
|
|
|
|
|
|
}
|
|
|
|
|
|
list=requestInfoService.getRequestInfoByIds(ids);
|
|
|
|
|
|
}else{
|
|
|
|
|
|
//条件导出数据大于最大导出数,只导出最大导出条数
|
|
|
|
|
|
Page<RequestInfo> pageInfo=new Page<RequestInfo>(request, response,"a");
|
|
|
|
|
|
pageInfo.setPageNo(1);
|
|
|
|
|
|
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
|
|
|
|
|
|
Page<RequestInfo> page = requestInfoService.findRequestInfo(pageInfo, entity);
|
|
|
|
|
|
list=page.getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
dataMap.put(entity.getMenuNameCode(),list);
|
|
|
|
|
|
// 获取国际化配置
|
2018-12-24 19:16:17 +08:00
|
|
|
|
String timeRange = initRequestMap(entity);
|
|
|
|
|
|
noExportMap.put("timeRange", timeRange);
|
|
|
|
|
|
if ("csv".equals(exType)) {
|
|
|
|
|
|
this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
|
|
|
|
|
classMap, dataMap, noExportMap);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
|
|
|
|
|
|
classMap, dataMap, noExportMap);
|
|
|
|
|
|
}
|
2018-12-17 00:21:27 +08:00
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
logger.error("ip addr export failed",e);
|
|
|
|
|
|
addMessage(redirectAttributes,"error", "export_failed");
|
|
|
|
|
|
}
|
|
|
|
|
|
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
|
|
|
|
|
|
}
|
2018-12-24 19:16:17 +08:00
|
|
|
|
|
|
|
|
|
|
public String initRequestMap(RequestInfo info){
|
|
|
|
|
|
Properties msgProp = getMsgProp();
|
|
|
|
|
|
String logTime=msgProp.getProperty(info.getMenuNameCode(),info.getMenuNameCode());
|
|
|
|
|
|
if(info.getBeginDate()!=null){
|
|
|
|
|
|
logTime+=" "+msgProp.getProperty("request_time","request_time")+":"+DateUtils.formatDateTime(info.getBeginDate());
|
|
|
|
|
|
if(info.getEndDate()!=null){
|
|
|
|
|
|
logTime+="—"+DateUtils.formatDateTime(info.getEndDate());
|
|
|
|
|
|
}else{
|
|
|
|
|
|
logTime+="—"+DateUtils.getDateTime();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if(info.getDobeginDate()!=null){
|
|
|
|
|
|
logTime+=" "+msgProp.getProperty("edit_time","edit_time")+":"+DateUtils.formatDateTime(info.getDobeginDate());
|
|
|
|
|
|
if(info.getDoendDate()!=null){
|
|
|
|
|
|
logTime+="—"+DateUtils.formatDateTime(info.getDoendDate());
|
|
|
|
|
|
}else{
|
|
|
|
|
|
logTime+="—"+DateUtils.getDateTime();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return logTime;
|
|
|
|
|
|
}
|
2018-03-06 10:36:15 +08:00
|
|
|
|
}
|