package cn.com.taiji.zhongxiao.web; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Vector; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import javax.inject.Inject; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import cn.com.taiji.util.*; import org.activiti.engine.runtime.ProcessInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import cn.com.taiji.sys.domain.Dept; import cn.com.taiji.sys.domain.Role; import cn.com.taiji.sys.domain.User; import cn.com.taiji.sys.dto.CodeDto; import cn.com.taiji.sys.dto.UserDto; import cn.com.taiji.sys.service.DeptService; import cn.com.taiji.sys.service.UserService; import cn.com.taiji.workflow.service.WorkflowService; import cn.com.taiji.zhongxiao.domain.CommonAduitrecord; import cn.com.taiji.zhongxiao.domain.ReqdataitemXxx; import cn.com.taiji.zhongxiao.domain.RequireBMTask; import cn.com.taiji.zhongxiao.domain.TbusinessItemAndInfoClass; import cn.com.taiji.zhongxiao.domain.TcodeSet; import cn.com.taiji.zhongxiao.domain.TdataMeta; import cn.com.taiji.zhongxiao.domain.TinfoClass; import cn.com.taiji.zhongxiao.domain.TinfoclassDatameta; import cn.com.taiji.zhongxiao.domain.TinfoclassRes; import cn.com.taiji.zhongxiao.domain.TsystemInfoAndInfoClass; import cn.com.taiji.zhongxiao.dto.DelayDataShareInfo; import cn.com.taiji.zhongxiao.dto.DelayInfo; import cn.com.taiji.zhongxiao.dto.DelayServiceShareInfo; import cn.com.taiji.zhongxiao.dto.TchangeApplyDto; import cn.com.taiji.zhongxiao.dto.TcodeSetDto; import cn.com.taiji.zhongxiao.dto.TdataMetaDto; import cn.com.taiji.zhongxiao.dto.TinfoClassDto; import cn.com.taiji.zhongxiao.dto.TserviceRegInfoDto; import cn.com.taiji.zhongxiao.dto.TshareApplyDto; import cn.com.taiji.zhongxiao.dto.UploadDto; import cn.com.taiji.zhongxiao.dto.VtasklistDto; import cn.com.taiji.zhongxiao.service.BusinessProcessService; import cn.com.taiji.zhongxiao.service.CommonAduitrecordService; import cn.com.taiji.zhongxiao.service.DatametaService; import cn.com.taiji.zhongxiao.service.DbdcCodeService; import cn.com.taiji.zhongxiao.service.DbdcRoleService; import cn.com.taiji.zhongxiao.service.DbdcUserService; import cn.com.taiji.zhongxiao.service.LoginfoService; import cn.com.taiji.zhongxiao.service.RequireBMTaskService; import cn.com.taiji.zhongxiao.service.RequireDataItemService; import cn.com.taiji.zhongxiao.service.SunCallable; import cn.com.taiji.zhongxiao.service.SunReadCallable; import cn.com.taiji.zhongxiao.service.TbusinessItemAndInfoClassService; import cn.com.taiji.zhongxiao.service.TchangeApplyService; import cn.com.taiji.zhongxiao.service.TcodeSetService; import cn.com.taiji.zhongxiao.service.TinfoClassService; import cn.com.taiji.zhongxiao.service.TinfoCodeService; import cn.com.taiji.zhongxiao.service.TinfoclassDatametaService; import cn.com.taiji.zhongxiao.service.TpowerResponsibilityService; import cn.com.taiji.zhongxiao.service.TresClassifyService; import cn.com.taiji.zhongxiao.service.TserviceRegInfoService; import cn.com.taiji.zhongxiao.service.TsystemInfoAndInfoClassService; import cn.com.taiji.zhongxiao.service.UploadService; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; /** * * 类名称:TinfoClassController 类描述: 信息类控制器 创建人:lijiezhi_pc 创建时间:2017年12月21日 * 下午2:58:18 * * @version */ @Controller @RequestMapping(value = "/tinfoclass") public class TinfoClassController { private static final Logger log = LoggerFactory.getLogger(TinfoClassController.class); @Inject DbdcUserService userService; @Inject ObjectMapper objectMapper; @Inject LoginfoService loginfoService; @Inject DatametaService datametaService; @Inject TinfoClassService tinfoClassService; @Inject DbdcCodeService dbdcCodeService; @Inject TinfoCodeService tinfoCodeService; @Inject TchangeApplyService tchangeApplyService; @Inject BusinessProcessService businessProcessService; @Inject TserviceRegInfoService reginfoService; @Inject TpowerResponsibilityService tpowerResponsibilityService; @Value("${zgbmgl_role}") String zgbmgl_role; @Value("${viewrole}") String viewrole; @Inject UserService uiservice; @Inject ThreadPoolTaskExecutor threadPoolTaskExecutor; @Inject TinfoclassDatametaService tinfoclassDatametaService; @Inject TcodeSetService tcodeSetService; @Inject TresClassifyService tresClassifyService; @Inject WorkflowService workflowService; @Inject DbdcRoleService dbdcRoleService; @Inject UploadService uploadService; @Inject TsystemInfoAndInfoClassService tsystemInfoAndInfoClassService; @Inject TbusinessItemAndInfoClassService tbusinessItemAndInfoClassService; @Inject RequireBMTaskService requireBMTaskService; @Inject JdbcTemplate jdbcTemplate; @Value("${save_path}") private String save_path; @Value("${zgbmbz_role}") private String zgbmbz_role; @Value("${qingdan_bzy}") private String qingdan_bzy; @Inject RequireDataItemService requireDataItemService; @Value("${admin_id}") String admin_id; @Value("${database_type}") String database_type; @Inject CommonAduitrecordService commonAduitrecordService; @Inject DeptService deptService; /* * 每页默认显示条数 */ public static int PAGESIZE = 10; public static String modelType = "信息类管理"; private Pagination newPagination(String currentPageStr, int pagesize) { Pagination page = new Pagination(); int currentPage = page.getPageCurrentNum() != 0 ? page.getPageCurrentNum() : 1; if (currentPageStr != null && !"".equals(currentPageStr)) { currentPage = Integer.parseInt(currentPageStr); } int pageStartNo = (currentPage - 1) * pagesize; page.setPageSize(pagesize); page.setPageCurrentNum(currentPage); page.setPageStartNo(pageStartNo); return page; } @RequestMapping("/tinfoclass_generatesql{infoclassid}") public String tinfoclassGeneratesql(Model model, @PathVariable("infoclassid") String infoclassid, HttpServletRequest request, HttpServletResponse response) { String type = request.getParameter("type"); String shareid = request.getParameter("shareid"); String sql = tinfoClassService.generateSql(infoclassid, type,shareid); model.addAttribute("sql", sql); return "thymeleaf/tinfoclass/tinfoclass_generatesql"; } /** * * @Description: 信息类已审核通过列表 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijiezhi * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_yslist") public String tinfoclassYslist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); model.addAttribute("userid", userInfo.getUserId()); List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); String hasqingdan = "0"; for (Role role : userInfo.getRoles()) { if (qingdan_bzy.contains(role.getRoleId())) { hasqingdan = "1"; break; } } // 判断用户是否有清单编制员的角色 loginfoService.logDealInfo("3", modelType, "信息类已审核列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); model.addAttribute("hasqingdan", hasqingdan); return "thymeleaf/tinfoclass/tinfoclass_yslist"; } @RequestMapping("/tinfoclass_yslist_json") public Map tinfoclass_yslist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassYsList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_choose_list{type}") public String tinfoclassChooseList(@PathVariable("type")String type, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String choose_name = request.getParameter("choose_name"); String choose_id = request.getParameter("choose_id"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination page = newPagination(currentPageStr, pagesize); if(!ToolUtil.isNull(type)) { dto.setSharemodetypename("接口"); } model.addAttribute("type", type); page = tinfoClassService.findTinfoClassYsList(dto, page, userInfo); model.addAttribute("list", page.getPageResult()); model.addAttribute("pagevar", page); model.addAttribute("dto", dto); model.addAttribute("choose_name", choose_name); model.addAttribute("choose_id", choose_id); loginfoService.logDealInfo("3", modelType, "信息类选择列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_choose_list"; } /** * * @Description: 信息类停用启用 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_tqlist") public String tinfoclassTqlist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类停启列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); String zgbm ="0"; for (Role role : userInfo.getRoles()) { if(zgbmgl_role.equals(role.getRoleId())||admin_id.equals(role.getRoleId())) zgbm = "1"; } List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); model.addAttribute("zgbm", zgbm); return "thymeleaf/tinfoclass/tinfoclass_tqlist"; } @RequestMapping("/tinfoclass_tqlist_json") public Map tinfoclass_tqlist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { Map map = new HashMap<>(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassTqList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } /** * * @Description: 信息类注册 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_zclist") public String tinfoclassZclist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); loginfoService.logDealInfo("3", modelType, "信息类注册列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_zclist"; } @RequestMapping("/tinfoclass_qzmllist{sysid}") public String tinfoclassQzmllist(@PathVariable("sysid")String sysid,Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "权责关联目录数", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); model.addAttribute("sysid", sysid); return "thymeleaf/tinfoclass/tinfoclass_qzmllist"; } @RequestMapping("/tinfoclass_qzmllist_json{sysid}") public Map tinfoclass_qzmllist_json(@PathVariable("sysid")String sysid,HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); dto.setSysteminfo(sysid); pageinfo = tinfoClassService.findTinfoClassQzmlList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_csmllist{sysid}") public String tinfoclassCsmllist(@PathVariable("sysid")String sysid,Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "产出目录数", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); model.addAttribute("sysid", sysid); return "thymeleaf/tinfoclass/tinfoclass_csmllist"; } @RequestMapping("/tinfoclass_csmllist_json{sysid}") public Map tinfoclass_csmllist_json(@PathVariable("sysid")String sysid,HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); dto.setSysteminfo(sysid); pageinfo = tinfoClassService.findTinfoClassCsmlList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_zclist_json") public Map tinfoclass_zclist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassZcList(dto, pageinfo, userInfo, "0");// 0 // 表示所有 // 1 // 表示提供方处室 // 2 // 表示提供方部门 // 3 // 表示提供方主管部门 map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_cslist") public String tinfoclassCslist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类注册列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_cslist"; } @RequestMapping("/tinfoclass_cslist_json") public Map tinfoclass_cslist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassZcList(dto, pageinfo, userInfo, "1");// 0 // 表示所有 // 1 // 表示提供方处室 // 2 // 表示提供方部门 // 3 // 表示提供方主管部门 map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_bmlist") public String tinfoclassBmlist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类注册列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_bmlist"; } @RequestMapping("/tinfoclass_bmlist_json") public Map tinfoclass_bmlist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassZcList(dto, pageinfo, userInfo, "2");// 0 // 表示所有 // 1 // 表示提供方处室 // 2 // 表示提供方部门 // 3 // 表示提供方主管部门 map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_zglist") public String tinfoclassZglist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { log.info("访问地址:" + request.getRequestURI()); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); int pagesize = Integer.parseInt(pagesizes); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); model.addAttribute("dto", dto); loginfoService.logDealInfo("3", modelType, "信息类注册列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_zglist"; } @RequestMapping("/tinfoclass_zglist_json") public Object tinfoclassZglistJson(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { log.info("访问地址:" + request.getRequestURI()); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Pagination page = newPagination(currentPageStr, pagesize); Map searchParameters = new HashMap(); searchParameters.put("field", request.getParameter("field")); searchParameters.put("order", request.getParameter("order")); page = tinfoClassService.findTinfoClassZcList(dto, page, userInfo, "3");// 0 // 表示所有 // 1 // 表示提供方处室 // 2 // 表示提供方部门 // 3 // 表示提供方主管部门 searchParameters = new HashMap(); searchParameters.put("code", 0); searchParameters.put("msg", 0); searchParameters.put("pagevar", page); return searchParameters; } /** * * @Description: 已申请信息类列表 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_yapplylist") public String tinfoclassYapplylist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "已申请信息类列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_yapplylist"; } @RequestMapping("/tinfoclass_yapplylist_json") public Map tinfoclassYapplylistJson(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); TinfoclassDatameta datameta = new TinfoclassDatameta(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto datameta = JSONObject.parseObject(queryParam, TinfoclassDatameta.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassYapplyList(dto, datameta, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } /** * * @Description: 信息类变更列表 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_bglist") public String tinfoclassBglist(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类变更列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_bglist"; } @RequestMapping("/tinfoclass_bglist_json") public Map tinfoclass_bglist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassBgList(dto, pageinfo, userInfo.getUserId()); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } /** * * @Description: 信息类版本信息列表 * @param verid * @param model * @param dto * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_versionlist{verid}") public String tinfoclassVersionlist(@PathVariable("verid") String verid, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); dto.setSourceid(verid); Pagination page = newPagination(currentPageStr, pagesize); page = tinfoClassService.findTinfoClassVersionList(dto, page); model.addAttribute("list", page.getPageResult()); model.addAttribute("pagevar", page); model.addAttribute("dto", dto); model.addAttribute("verid_", verid); loginfoService.logDealInfo("3", modelType, "信息类版本信息列表:" + verid, "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_versionlist"; } @RequestMapping("/tinfoclass_versionlist_json{verid}") public Object tinfoclassVersionlistJson(@PathVariable("verid") String verid, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); dto.setSourceid(verid); Pagination page = newPagination(currentPageStr, pagesize); Map searchParameters = new HashMap(); searchParameters.put("field", request.getParameter("field")); searchParameters.put("order", request.getParameter("order")); page = tinfoClassService.findTinfoClassVersionList(dto, page); searchParameters = new HashMap(); searchParameters.put("code", 0); searchParameters.put("msg", 0); searchParameters.put("pagevar", page); return searchParameters; } /** * * @Description: 信息类注册审核列表 * @param model * @param dto * @param task * @param request * @param response * @return String * @throws @author lijiezhi_pc * @date 2018年1月5日 */ @RequestMapping("/tinfoclass_zcshlist") public String tinfoclassZcshlist(Model model, TinfoClassDto dto, VtasklistDto task, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Set serRole = userInfo.getRoles(); String flag = "1"; for (Role role : serRole) { if (admin_id.equals(role.getRoleId())) flag = "0"; } model.addAttribute("flag", flag); loginfoService.logDealInfo("3", modelType, "信息类注册审核信息列表:", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_zcshlist"; } @RequestMapping("/delayinfo_list") public String delayinfo_list(Model model, TinfoClassDto dto, VtasklistDto task, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "催办列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/delayinfo_list"; } @RequestMapping("/delayinfo_detaillist{deptid}") public String delayinfo_servicelist(@PathVariable("deptid") String deptid, Model model, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "催办详情", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); model.addAttribute("deptid", deptid); return "thymeleaf/tinfoclass/delayinfo_detaillist"; } @RequestMapping("/delayInfo_datashare_json") public Map delayInfo_datashare_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); DelayDataShareInfo dto = new DelayDataShareInfo(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, DelayDataShareInfo.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); dto.setProvidebmcode(request.getParameter("providebmcode")); pageinfo = tinfoClassService.findDelayDataShareInfoList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/delayInfo_serviceshare_json") public Map delayInfo_serviceshare_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); DelayServiceShareInfo dto = new DelayServiceShareInfo(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, DelayServiceShareInfo.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); dto.setProvidebmcode(request.getParameter("providebmcode")); pageinfo = tinfoClassService.findDelayServiceShareInfo(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/delayInfo_json") public Map delayInfo_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); DelayInfo dto = new DelayInfo(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, DelayInfo.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findDelayInfoList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/tinfoclass_zcshlist_json") public Map tinfoclass_zcshlist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); VtasklistDto task = new VtasklistDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); task = JSONObject.parseObject(queryParam, VtasklistDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassZcCheckList(dto, task, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/zhuanban_info") public String zhuanbanInfo(Model model, UserDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String roleid = request.getParameter("roleid"); String taskId = request.getParameter("taskId"); String candidate = request.getParameter("candidate"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination page = newPagination(currentPageStr, pagesize); List roles = dbdcRoleService.findAllRoles(); Map searchParameters = new HashMap(); searchParameters.put("field", request.getParameter("field")); searchParameters.put("order", request.getParameter("order")); page = userService.findAllUserList(dto, page, "", roleid, searchParameters); model.addAttribute("list", page.getPageResult()); model.addAttribute("roles", roles); model.addAttribute("roleid", roleid); model.addAttribute("pagevar", page); model.addAttribute("dto", dto); model.addAttribute("taskId", taskId); model.addAttribute("candidate", candidate); loginfoService.logDealInfo("3", modelType, "转办用户信息列表", "userinfo", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/zbuser_list"; } @ResponseBody @RequestMapping("/zhuanban_info_json") public Object zhuanbanInfoJson(Model model, UserDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String roleid = request.getParameter("roleid"); String taskId = request.getParameter("taskId"); String candidate = request.getParameter("candidate"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination page = newPagination(currentPageStr, pagesize); List roles = dbdcRoleService.findAllRoles(); Map searchParameters = new HashMap(); searchParameters.put("field", request.getParameter("field")); searchParameters.put("order", request.getParameter("order")); page = userService.findAllUserList(dto, page, "", roleid, searchParameters); searchParameters = new HashMap(); searchParameters.put("code", 0); searchParameters.put("msg", 0); searchParameters.put("pagevar", page); return searchParameters; } @RequestMapping("/currenttaskuser_info") public String currenttaskuserInfo(Model model, UserDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String proid = request.getParameter("proid"); model.addAttribute("proid", proid); loginfoService.logDealInfo("3", modelType, "当前任务用户信息列表", "userinfo", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/currenttaskuser_info"; } @ResponseBody @RequestMapping("/currenttaskuser_info_json") public Object currenttaskuserInfoJson(Model model, UserDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); String currentPageStr = request.getParameter("pagecurrentnum"); String proid = request.getParameter("proid"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination page = newPagination(currentPageStr, pagesize); Map searchParameters = new HashMap(); searchParameters.put("field", request.getParameter("field")); searchParameters.put("order", request.getParameter("order")); page = workflowService.findCurrentTaskUserByProcinstid(dto, proid, page); searchParameters = new HashMap(); searchParameters.put("code", 0); searchParameters.put("msg", 0); searchParameters.put("pagevar", page); return searchParameters; } /** * * @Description: 我的已审核 * @param model * @param dto * @param task * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_myyslist") public String tinfoclassMyyslist(Model model, TinfoClassDto dto, VtasklistDto task, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类我的已审信息列表:", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_myyslist"; } @RequestMapping("/tinfoclass_myyslist_json") public Map tinfoclass_myyslist_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); VtasklistDto task = new VtasklistDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); task = JSONObject.parseObject(queryParam, VtasklistDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassMyYsList(dto, task, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping(value = "/download{type}") public void download(@PathVariable("type") String type, TinfoClassDto dto, VtasklistDto task, Model model, HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException, ExecutionException { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); boolean flag = false; boolean haszgbm = false; String zfbm = "否"; // 判断用户权限 for (Role role : userInfo.getRoles()) { if (admin_id.equals(role.getRoleId())) flag = true; if (zgbmgl_role.contains(role.getRoleId()) || zgbmbz_role.contains(role.getRoleId())) { haszgbm = true; } } for (Dept dept : userInfo.getDepts()) { if (dept.getDeptProperty() != null && "政务部门".equals(dept.getDeptProperty())) { zfbm = "是"; } } List> listMap = new ArrayList>(); StringBuffer sql = new StringBuffer(""); // 定义导出excle模板选择 String templatefile = ""; String resulttype = "";// 1 表示单纯信息类 2.表示信息类加信息项 List paramList = new ArrayList(); if ("res".equals(type)) {// 目录检索页面,信息类导出 templatefile = "infoclassTemplate.ftl"; resulttype = "1"; String resid = request.getParameter("resid"); if (!ToolUtil.isNull(resid)) { if ("oracle".equals(database_type)) { paramList.add(resid); sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME") .append(" FROM t_infoclass P,(SELECT resid,'' tinfoclassid FROM t_res_classify") .append(" WHERE state = '0' START WITH resid = ? CONNECT BY PRIOR resid = presid") .append(" ) w WHERE P .latestversion = '1'")// union SELECT q.resid,q.tinfoclassid // FROM t_infoclass_res_detail q .append(" AND P .inprocess = '2' and ((w.resid=p.infotypeid and w.tinfoclassid is null) or (w.resid=p.infotypeid and p.id=w.tinfoclassid)) "); } else if ("mysql".equals(database_type)) { sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where p.latestversion='1' and p.inprocess='2' and (p.disablestate is null or p.disablestate!='1') "); // 获取到当前分类的所有子节点 String lastResIds = "('" + resid + "',"; List> menuTreeList = new ArrayList>(); String sql2 = "select resid from t_res_classify where presid=?"; menuTreeList = tinfoClassService.resInfo(sql2, resid); List> templist = menuTreeList; Map map = new HashMap(); while (templist != null && templist.size() > 0) {// sql2 = "select resid from t_res_classify where presid in "; String deptids = ""; for (Map info : templist) { deptids += "'" + info.get("resid") + "'" + ","; map.put((String) info.get("resid"), info.get("resid")); } if (deptids.length() > 1) { deptids = deptids.substring(0, deptids.length() - 1); sql2 = sql2 + "(" + deptids + ")"; } templist = tinfoClassService.resInfo(sql2, ""); for (Map info : templist) { map.put((String) info.get("resid"), info.get("resid")); } } for (Map.Entry entry : map.entrySet()) { lastResIds = lastResIds + "'" + entry.getValue() + "'" + ","; } if (lastResIds.length() > 1) { lastResIds = lastResIds.substring(0, lastResIds.length() - 1); lastResIds = lastResIds + ")"; } // 获取资源所属分类 sql.append("and p.infotypeid in ").append(lastResIds); // .append(" or p.id in (SELECT q.tinfoclassid FROM t_infoclass_res_detail q where q.resid=?) )"); // paramList.add(resid); } } else { sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where p.latestversion='1' and p.inprocess='2' "); } } else if ("resxxx".equals(type)) { // 目录检索页面,信息项导出 templatefile = "infoclassTemplate_xxx.ftl"; resulttype = "2"; String resid = request.getParameter("resid"); if (!ToolUtil.isNull(resid)) { if ("oracle".equals(database_type)) { paramList.add(resid); sql = new StringBuffer( "SELECT P.ID,P.SUBFORMATTYPENAME,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME ") .append(" FROM t_infoclass P,T_INFOCLASS_DATAMETA T,(SELECT resid,'' tinfoclassid FROM t_res_classify") .append(" WHERE state = '0' START WITH resid = ? CONNECT BY PRIOR resid = presid") .append(" union SELECT q.resid,q.tinfoclassid FROM t_infoclass_res_detail q) w WHERE P .latestversion = '1'") .append(" AND P .inprocess = '2' and P.ID = T.TINFOCLASSID and ((w.resid=p.infotypeid and w.tinfoclassid is null) or (w.resid=p.infotypeid and p.id=w.tinfoclassid)) "); } else if ("mysql".equals(database_type)) { sql = new StringBuffer( "SELECT P.HITCH_STATUS,P.ID,P.SUBFORMATTYPENAME,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND p.latestversion='1' and p.inprocess='2' and (p.disablestate is null or p.disablestate!='1') "); // 获取到当前分类的所有子节点 String lastResIds = "('" + resid + "',"; List> menuTreeList = new ArrayList>(); String sql2 = "select resid from t_res_classify where presid=?"; menuTreeList = tinfoClassService.resInfo(sql2, resid); List> templist = menuTreeList; Map map = new HashMap(); while (templist != null && templist.size() > 0) {// sql2 = "select resid from t_res_classify where presid in "; String deptids = ""; for (Map info : templist) { deptids += "'" + info.get("resid") + "'" + ","; map.put((String) info.get("resid"), info.get("resid")); } if (deptids.length() > 1) { deptids = deptids.substring(0, deptids.length() - 1); sql2 = sql2 + "(" + deptids + ")"; } templist = tinfoClassService.resInfo(sql2, ""); for (Map info : templist) { map.put((String) info.get("resid"), info.get("resid")); } } for (Map.Entry entry : map.entrySet()) { lastResIds = lastResIds + "'" + entry.getValue() + "'" + ","; } if (lastResIds.length() > 1) { lastResIds = lastResIds.substring(0, lastResIds.length() - 1); lastResIds = lastResIds + ")"; } // 获取资源所属分类 sql.append("and ( p.infotypeid in ").append(lastResIds).append( " or p.id in (SELECT q.tinfoclassid FROM t_infoclass_res_detail q where q.resid=?) )"); paramList.add(resid); } } else { sql = new StringBuffer( "SELECT P.HITCH_STATUS, P.ID,P.SUBFORMATTYPENAME,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND p.latestversion='1' and p.inprocess='2' "); } } else if ("ys".equals(type)) {// 信息资源已审 templatefile = "infoclassTemplate.ftl"; resulttype = "1"; sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where latestversion='1' and inprocess='2' "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); String aa = ""; if (haszgbm) aa = " or q.xzqhcode=p.XZQHCODE"; sql.append( " and ( creator=? or ( exists (select user_id from dept_user t,deptinfo q where t.user_id=? and t.dept_id=q.dept_id and (t.dept_id=p.providebmcode or t.dept_id=p.providecode " + aa + "))))"); } } else if ("zc".equals(type)) {// 信息注册 templatefile = "infoclassTemplate.ftl"; resulttype = "1"; sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providebmcode))))"); } } else if ("zcxxx".equals(type)) {// 信息注册信息项导出 templatefile = "infoclassTemplate_xxx.ftl"; resulttype = "2"; sql = new StringBuffer( "SELECT P.HITCH_STATUS, P.ID,P.SUBFORMATTYPENAME,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providebmcode))))"); } } else if ("cs".equals(type)) {// 处室 resulttype = "1"; templatefile = "infoclassTemplate.ftl"; sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providecode))))"); } } else if ("csxxx".equals(type)) {// 处室信息项excle导出 resulttype = "2"; templatefile = "infoclassTemplate_xxx.ftl"; sql = new StringBuffer( "SELECT P.HITCH_STATUS,P.ID,P.SUBFORMATTYPENAME,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND INPROCESS IN ('0','1','2','3')"); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providecode))))"); } } else if ("bm".equals(type)) {// 部门 templatefile = "infoclassTemplate.ftl"; resulttype = "1"; sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providebmcode))))"); } } else if ("bmxxx".equals(type)) {// 部门信息项excle导出 templatefile = "infoclassTemplate_xxx.ftl"; resulttype = "2"; sql = new StringBuffer( "SELECT P.HITCH_STATUS, P.ID,P.subformattypename,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND INPROCESS IN ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user where user_id=? and (dept_id=providebmcode))))"); } } else if ("zgbm".equals(type)) {// 主管部门 templatefile = "infoclassTemplate.ftl"; resulttype = "1"; sql = new StringBuffer( "SELECT P.BGID,P.BGSTATUS,P.BMID,P.CREATEDATE,P.CREATOR,P.CREATOR_NAME,P.CREATOR_ORG,P.CREATOR_ORGNAME,P.CREDITNO,P.DATARANGE,P.FORMATTYPE,P.FORMATTYPEID,P.FORMATTYPENAME,P.HITCH,P.HITCH_SIZE,P.HITCH_STATUS,P.HITCH_UP_ADRESS,P.HITCH_UP_NAME,P.HITCHDATE,P.HITCHUSER,P.ID,P.INFOABSTRACTS,P.INFOCODE,P.INFONAME,P.INFOTYPE,P.INFOTYPEID,P.INFOTYPENAME,P.INPROCESS,P.ISBG,P.ISOPENSOCIAL,P.ISSECRET,P.ISZGBMBZ,P.LATESTVERSION,P.MANAGETYPE,P.OPENCONDITION,P.PARENTID,P.PROCESSID,P.PROVIDEBMCODE,P.PROVIDEBMNAME,P.PROVIDECODE,P.PROVIDENAME,P.PROVIDEZGCODE,P.PROVIDEZGNAME,P.SHARECONDITIONS,P.SHAREMODE,P.SHAREMODEID,P.SHAREMODENAME,P.SHAREMODETYPE,P.SHAREMODETYPEID,P.SHAREMODETYPENAME,P.SHARETYPE,P.SOURCEID,P.SUBFORMATTYPE,P.SUBFORMATTYPEID,P.SUBFORMATTYPENAME,P.SYSTEMINFO,P.TASKNAME,P.UPDATECYCLE,P.UPDATETIME,P.UPDATOR,P.UPDATOR_NAME,P.UPDATOR_ORG,P.UPDATOR_ORG_NAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.XZQHCODE,P.XZQHID,P.XZQHNAME,P.YWBMCODE,P.YWBMID,P.YWBMNAME from t_infoclass p where inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user deu,deptinfo dep where deu.user_id=? and deu.dept_id=dep.dept_id and dep.xzqhcode=p.xzqhcode)))"); } } else if ("zgbmxxx".equals(type)) {// 主管部门信息项excle导出 templatefile = "infoclassTemplate_xxx.ftl"; resulttype = "2"; sql = new StringBuffer( "SELECT P.HITCH_STATUS, P.ID,P.subformattypename,P.INFOCODE,P.INFONAME,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.DATAMETAID,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.ID = T.TINFOCLASSID AND inprocess in ('0','1','2','3') "); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); sql.append( " and ( creator=? or ( exists (select user_id from dept_user deu,deptinfo dep where deu.user_id=? and deu.dept_id=dep.dept_id and dep.xzqhcode=p.xzqhcode)))"); } } else if ("xxxdc".equals(type)) {// 信息项导出 // 定义导出excle模板 templatefile = "infoclassTemplate_xxx.ftl"; // 信息项导出 resulttype = "2"; // 查询sql sql = new StringBuffer( "SELECT P.HITCH_STATUS,P.ID,P.subformattypename, P.infocode,P.infoname,P.INFOABSTRACTS,P.FORMATTYPENAME,T.DATASIZE,T.DATATYPE_DIS,T.XXXBM,T.XXXMC, T.XXXDBMC, T.datametaid,T.DESCRIPTION RANGES,P.SHARETYPE,P.SHARECONDITIONS,P.SHAREMODENAME,P.SHAREMODETYPENAME,P.ISOPENSOCIAL,P.OPENCONDITION,P.UPDATECYCLE,P.MANAGETYPE,P.DATARANGE,P.PROVIDENAME,P.PROVIDEBMNAME,P.INFOTYPENAME,concat(P.VERSIONID,'.',P.SUBVERSIONID) VERSIONID,P.UPDATETIME FROM T_INFOCLASS P,T_INFOCLASS_DATAMETA T WHERE P.id=T.TINFOCLASSID and P.INPROCESS='2' and P.LATESTVERSION='1'"); if (!flag) { paramList.add(userInfo.getUserId()); paramList.add(userInfo.getUserId()); String aa = ""; if (haszgbm) aa = " or q.xzqhcode=p.XZQHCODE"; sql.append( " and ( creator=? or ( exists (select user_id from dept_user t,deptinfo q where t.user_id=? and t.dept_id=q.dept_id and (t.dept_id=p.providebmcode or t.dept_id=p.providecode " + aa + "))))"); } } // 信息类名称查询条件 if (!ToolUtil.isNull(dto.getInfoname())) { paramList.add("%" + dto.getInfoname() + "%"); sql.append(" and p.infoname like ? "); } if (!ToolUtil.isNull(dto.getCheckids())) { paramList.add(dto.getCheckids()); sql.append(" and instr(?,p.id)>0 "); } // 信息类编码 if (!ToolUtil.isNull(dto.getInfocode())) { paramList.add(dto.getInfocode()); sql.append(" and p.infocode = ? "); } if (!ToolUtil.isNull(dto.getFltag())) { paramList.add("%"+dto.getFltag()+"%"); sql.append(" and p.fltag like ? "); } if(!ToolUtil.isNull(dto.getSharerange())){ paramList.add(dto.getSharerange()); sql.append(" and p.sharerange = ? "); } // 资源分类,从信息资源分类选择 if (!ToolUtil.isNull(dto.getInfotypename())) { paramList.add("%" + dto.getInfotypename() + "%"); sql.append(" and p.infotypename like ? "); } if (!ToolUtil.isNull(dto.getGlinfotypename())) { paramList.add("%" + dto.getGlinfotypename() + "%"); sql.append(" and p.glinfotypename like ? "); } // 信息类提供方 if (!ToolUtil.isNull(dto.getProvidename())) { paramList.add("%" + dto.getProvidename() + "%"); sql.append(" and p.providename like ? "); } // 提供部门 if (!ToolUtil.isNull(dto.getProvidebmname())) { paramList.add("%" + dto.getProvidebmname() + "%"); sql.append(" and p.providebmname like ? "); } // 是否向社会开放,1是 2 否 if (!ToolUtil.isNull(dto.getIsopensocial())) { paramList.add(dto.getIsopensocial()); sql.append(" and p.isopensocial = ? "); } // 挂接情况状态 1是已挂接 0未挂接 if (dto.getHitchStatus() != null) { paramList.add(dto.getHitchStatus() + ""); sql.append(" and p.hitch_status = ? "); } // 共享类型:1 有条件共享2无条件共享3不予共享 if (!ToolUtil.isNull(dto.getSharetype())) { paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } if (!ToolUtil.isNull(dto.getSharetype())) { if ("否".equals(zfbm)) { if ("1".equals(dto.getSharetype())) { sql.append(" and p.sharetype in ('1','2') "); } else if ("2".equals(dto.getSharetype())) { sql.append(" and p.sharetype = 'zfbm' "); } } else { paramList.add(dto.getSharetype()); sql.append(" and p.sharetype = ? "); } } // 起始时间 if (!ToolUtil.isNull(dto.getStartdate())) { paramList.add(dto.getStartdate()); sql.append(" and p.updatetime >= ? "); } // 结束时间 if (!ToolUtil.isNull(dto.getEnddate())) { paramList.add(dto.getEnddate()); sql.append(" and p.updatetime <= ? "); } if (!ToolUtil.isNull(dto.getTaskname())) { switch (dto.getTaskname()) { case "未提交": sql.append(" and p.inprocess ='0' "); break; case "处室审核": sql.append(" and p.inprocess ='1' and taskname='处室审核'"); break; case "部门审核": sql.append(" and p.inprocess ='1' and taskname='部门审核'"); break; case "主管部门审核": sql.append(" and p.inprocess ='1' and taskname='主管部门审核'"); break; case "待发布": sql.append(" and p.inprocess ='1' and taskname='发布'"); break; case "已发布": sql.append(" and p.inprocess ='2' "); break; case "停用": sql.append(" and p.inprocess ='5' "); break; case "编目人员修改": sql.append(" and p.inprocess ='1' and taskname='编目人员修改'"); break; default: break; } } // 判断resulttype,对查询结果排序 1 表示单纯信息类 2.表示信息类加信息项 if ("2".equals(resulttype)) { sql.append("ORDER BY T.XXXBM ASC"); } Object[] args = new Object[] {}; int length = paramList.size(); if (length > 0) { args = new Object[length]; for (int i = 0; i < length; i++) { args[i] = paramList.get(i); } } if ("oracle".equals(database_type)) { BigDecimal count = (BigDecimal) jdbcTemplate .queryForMap("select count(1) totalnum from (" + sql.toString() + ") q ", args).get("totalnum"); listMap = doReadDataByThread(count.intValue(), sql.toString(), args, resulttype); } else { Long count = (Long) jdbcTemplate .queryForMap("select count(1) totalnum from (" + sql.toString() + ") q ", args).get("totalnum"); listMap = doReadDataByThread(count.intValue(), sql.toString(), args, resulttype); } Map dataMapAll = new HashMap(); dataMapAll.put("data", listMap); Configuration configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); // 调用导出模板的方法 configuration.setClassForTemplateLoading(this.getClass(), "/templates/mailTemplate"); // FTL文件所存在的位置 InputStream fin = null; ServletOutputStream o = null; File outFile = null; File file = new File(save_path); // 判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdirs(); } try { Template t = configuration.getTemplate(templatefile); // 文件名 outFile = new File(save_path + File.separator + new Date().getTime() + ".xls"); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8")); t.process(dataMapAll, out); out.close(); fin = new FileInputStream(outFile); response.setCharacterEncoding("utf-8"); response.setContentType("application/msexcel"); response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("信息类情况.xls", "UTF-8")); o = response.getOutputStream(); byte[] buffer = new byte[1024]; // 缓冲区 int bytesToRead = 0; while ((bytesToRead = fin.read(buffer)) > 0) { o.write(buffer, 0, bytesToRead); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fin != null) fin.close(); if (o != null) o.close(); if (outFile != null) outFile.delete(); // 删除临时文件 } } /** * * @Description: 资源分类下的信息类信息列表 * @param model * @param dto * @param resid * @param request * @param response * @return String * @throws @author lijie * @date 2018年1月29日 */ @RequestMapping("/tinfoclass_resClassifyList{resid}") public String tinfoclassResClassifyList(Model model, @PathVariable("resid") String resid, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map privs = dbdcRoleService.findButtonPrivByUserIdAndUrl(userInfo.getUserId(), "/resClassify/tinfoClass_list"); String zfbm = "否"; String type = request.getParameter("type"); for (Dept dept : userInfo.getDepts()) { if (dept.getDeptProperty() != null && "政务部门".equals(dept.getDeptProperty())) { zfbm = "是"; } } Set serRole = userInfo.getRoles(); boolean flag2 = false; boolean flag3 = false; for (Role role : serRole) { if (zgbmgl_role.equals(role.getRoleId())) flag2 = true; if (viewrole.equals(role.getRoleId())) flag3 = true; } model.addAttribute("type", type); model.addAttribute("viewrole", flag3); model.addAttribute("zgbmgl_role", flag2); model.addAttribute("resid", resid); model.addAttribute("zfbm", zfbm); model.addAttribute("privs", privs.get("add_priv")); List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); return "thymeleaf/tinfoclass/tinfoclass_resClassifyList"; } @RequestMapping("/serviceinfolist{classid}") public String serviceInfoList(Model model, @PathVariable("classid") String classid, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); model.addAttribute("classid", classid); return "thymeleaf/tinfoclass/serviceinfolist"; } @RequestMapping("/serviceinfolist_json{classid}") public Map serviceinfolistJson(HttpServletRequest request, @RequestParam(required = false) String queryParam, @PathVariable("classid") String classid, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { Map map = new HashMap<>(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); TserviceRegInfoDto dto = new TserviceRegInfoDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TserviceRegInfoDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); dto.setClassid(classid); pageinfo = reginfoService.findInfoListByClassid(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/ziyuanInfo{resid}") public Map ZiyuanInfo(HttpServletRequest request, @RequestParam(required = false) String queryParam, @PathVariable("resid") String resid, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { Map map = new HashMap<>(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassresClassifyList(dto, resid, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/dataMetaChooselist") public String dataMetaChooseList(Model model, TdataMetaDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String currentPageStr = request.getParameter("pagecurrentnum"); String pagesizes = request.getParameter("selectlimitnum"); if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination page = newPagination(currentPageStr, pagesize); page = tinfoClassService.findDataMetaChooselist(dto, page); model.addAttribute("list", page.getPageResult()); model.addAttribute("pagevar", page); model.addAttribute("dto", dto); loginfoService.logDealInfo("3", modelType, "数据元选择", "t_datameta", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/dataMetaChooselist"; } @RequestMapping("/tinfoclass_add") public String tinfoclassAdd(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { String bmid = request.getParameter("bmid"); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); // thymeleaf 存在严重的lazy懒加载堆栈溢出bug,需要人工处理 // Dept userdept = deptService.findById(userInfo.getDeptid()); String sql = "SELECT dept_id as id, creditno,dept_abbreviation,dept_desc,dept_index,dept_name as name,dept_property,dept_state,parent_id,pdeptids,xzqhcode,xzqhid,xzqhname,ywbmcode,ywbmid,ywbmname FROM deptinfo WHERE dept_id=?"; Map userdept = jdbcTemplate.queryForMap(sql, new Object[]{userInfo.getDeptid()}); Map parentDept = jdbcTemplate.queryForMap(sql, new Object[]{userdept.get("parent_id")}); model.addAttribute("userdept", userdept); model.addAttribute("parentDept", parentDept); dto = tinfoClassService.getDefaultInfoByUserId(userInfo.getUserId()); List list = dbdcCodeService.findCodeByCodeType("xxzygs");// 获取信息资源格式 List gxpllist = dbdcCodeService.findCodeByCodeType("gxpl");// 获取更新频率 List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); List gxfslist = dbdcCodeService.findCodeByCodeType("gxfs");// 获取共享方式 List sjfwlist = dbdcCodeService.findCodeByCodeType("sjfw");// 获取数据范围 model.addAttribute("list", list); model.addAttribute("dto", dto); model.addAttribute("gxpllist", gxpllist); model.addAttribute("gxfslist", gxfslist); model.addAttribute("bmid", bmid); model.addAttribute("sjfwlist", sjfwlist); return "thymeleaf/tinfoclass/tinfoclass_add"; } @RequestMapping("/tinfoclass_xxladd") public String tinfoclassXxlAdd(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { String xxxid = request.getParameter("id"); if (ToolUtil.isNull(xxxid)) { xxxid = ""; } List list = dbdcCodeService.findCodeByCodeType("sjylb");// 获取数据元类别 List gxfslist = dbdcCodeService.findCodeByCodeType("gxfs");// 获取共享方式 model.addAttribute("list", list); model.addAttribute("xxxid", xxxid); model.addAttribute("gxfslist", gxfslist); return "thymeleaf/tinfoclass/tinfoclass_xxladd"; } @RequestMapping("/tinfoclass_edit{id}") public String tinfoclassEdit(@PathVariable("id") String id, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); List list = dbdcCodeService.findCodeByCodeType("xxzygs");// 获取信息资源格式 List gxpllist = dbdcCodeService.findCodeByCodeType("gxpl");// 获取更新频率 List gxfslist = dbdcCodeService.findCodeByCodeType("gxfs");// 获取共享方式 List sjfwlist = dbdcCodeService.findCodeByCodeType("sjfw");// 获取数据范围 List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); TinfoClassDto info = tinfoClassService.findTinfoClassById(id); List> infolist = tpowerResponsibilityService.findTsubpowerResponsibilityByClassid(id); String qzqd = ""; String qzqdid = ""; for (Map res : infolist) { qzqd += res.get("qzqd") + ";"; qzqdid += res.get("qzqdid") + ";"; } model.addAttribute("qzqd", qzqd); model.addAttribute("qzqdid", qzqdid); String zyflid = ""; String zyflname = ""; for (TinfoclassRes res : info.getTinfoclassResList()) { zyflid += res.getTresClassify().getResid() + ","; zyflname += res.getTresClassify().getResname() + ","; } List systeminfoList = tsystemInfoAndInfoClassService .findTsystemInfoAndInfoClassByClassId(id); List businessItemList = tbusinessItemAndInfoClassService .findTbusinessItemAndInfoClassByClassId(id); String systeminfoname = ""; String systeminfoid = ""; String ywsxid = ""; String ywsx = ""; for (TsystemInfoAndInfoClass data : systeminfoList) { systeminfoname = systeminfoname + data.getSysteminfoName() + ";"; systeminfoid = systeminfoid + data.getSysteminfoId() + ";"; } for (TbusinessItemAndInfoClass data : businessItemList) { ywsxid = ywsxid + data.getItemid() + ";"; ywsx = ywsx + data.getItemname() + ";"; } model.addAttribute("zyflname", zyflname); model.addAttribute("zyflid", zyflid); model.addAttribute("info", info); model.addAttribute("list", list); model.addAttribute("gxpllist", gxpllist); model.addAttribute("gxfslist", gxfslist); model.addAttribute("systeminfoname", systeminfoname); model.addAttribute("systeminfoid", systeminfoid); model.addAttribute("sjfwlist", sjfwlist); model.addAttribute("ywsxid", ywsxid); model.addAttribute("ywsx", ywsx); loginfoService.logDealInfo("3", modelType, "信息类查看", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_edit"; } @RequestMapping("/tinfoclass_bg{id}") public String tinfoclassBg(@PathVariable("id") String id, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); List list = dbdcCodeService.findCodeByCodeType("xxzygs");// 获取信息资源格式 List gxpllist = dbdcCodeService.findCodeByCodeType("gxpl");// 获取更新频率 List gxfslist = dbdcCodeService.findCodeByCodeType("gxfs");// 获取共享方式 List sjfwlist = dbdcCodeService.findCodeByCodeType("sjfw");// 获取数据范围 List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); TinfoClassDto info = tinfoClassService.findTinfoClassById(id); if("2".equals(info.getBgstatus())){ return "thymeleaf/tinfoclass/tinfoclass_ybg"; }else{ List> infolist = tpowerResponsibilityService.findTsubpowerResponsibilityByClassid(id); String qzqd = ""; String qzqdid = ""; for (Map res : infolist) { qzqd += res.get("qzqd") + ";"; qzqdid += res.get("qzqdid") + ";"; } model.addAttribute("qzqd", qzqd); model.addAttribute("qzqdid", qzqdid); String bgflag = request.getParameter("bgflag"); String bgid = request.getParameter("bgid"); String zyflid = ""; String zyflname = ""; for (TinfoclassRes res : info.getTinfoclassResList()) { zyflid += res.getTresClassify().getResid() + ","; zyflname += res.getTresClassify().getResname() + ","; } List systeminfoList = tsystemInfoAndInfoClassService .findTsystemInfoAndInfoClassByClassId(id); List businessItemList = tbusinessItemAndInfoClassService .findTbusinessItemAndInfoClassByClassId(id); String systeminfoname = ""; String systeminfoid = ""; String ywsxid = ""; String ywsx = ""; for (TsystemInfoAndInfoClass data : systeminfoList) { systeminfoname = systeminfoname + data.getSysteminfoName() + ";"; systeminfoid = systeminfoid + data.getSysteminfoId() + ";"; } for (TbusinessItemAndInfoClass data : businessItemList) { ywsxid = ywsxid + data.getItemid() + ";"; ywsx = ywsx + data.getItemname() + ";"; } model.addAttribute("ywsxid", ywsxid); model.addAttribute("ywsx", ywsx); model.addAttribute("systeminfoname", systeminfoname); model.addAttribute("systeminfoid", systeminfoid); model.addAttribute("zyflname", zyflname); model.addAttribute("zyflid", zyflid); model.addAttribute("info", info); model.addAttribute("bgid", bgid); model.addAttribute("bgflag", bgflag); model.addAttribute("list", list); model.addAttribute("gxpllist", gxpllist); model.addAttribute("gxfslist", gxfslist); model.addAttribute("sjfwlist", sjfwlist); loginfoService.logDealInfo("3", modelType, "信息类查看", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/tinfoclass_bg"; } } @RequestMapping("/tinfoclass_view{id}") public String tinfoclassView(@PathVariable("id") String id, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); TinfoClassDto info = tinfoClassService.findTinfoClassById(id); model.addAttribute("info", info); String dataitemid = request.getParameter("dataitemid"); List rxxxlist = new ArrayList<>(); if (!ToolUtil.isNull(dataitemid)) { rxxxlist = requireDataItemService.findReqdataitemXxxByDataItemId(dataitemid); } model.addAttribute("rxxxlist", rxxxlist); String zyflid = ""; String zyflname = ""; for (TinfoclassRes res : info.getTinfoclassResList()) { zyflid += res.getTresClassify().getResid() + ","; zyflname += res.getTresClassify().getResname() + ","; } List systeminfoList = tsystemInfoAndInfoClassService .findTsystemInfoAndInfoClassByClassId(id); List businessItemList = tbusinessItemAndInfoClassService .findTbusinessItemAndInfoClassByClassId(id); String systeminfoname = ""; String systeminfoid = ""; String ywsxid = ""; String ywsx = ""; for (TsystemInfoAndInfoClass data : systeminfoList) { systeminfoname = systeminfoname + data.getSysteminfoName() + ";"; systeminfoid = systeminfoid + data.getSysteminfoId() + ";"; } for (TbusinessItemAndInfoClass data : businessItemList) { ywsxid = ywsxid + data.getItemid() + ";"; ywsx = ywsx + data.getItemname() + ";"; } model.addAttribute("ywsxid", ywsxid); model.addAttribute("ywsx", ywsx); model.addAttribute("systeminfoname", systeminfoname); model.addAttribute("systeminfoid", systeminfoid); model.addAttribute("zyflname", zyflname); model.addAttribute("zyflid", zyflid); loginfoService.logDealInfo("3", modelType, "信息类查看", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); String zfbm = "否"; for (Dept dept : userInfo.getDepts()) { if (dept.getDeptProperty() != null && "政务部门".equals(dept.getDeptProperty())) { zfbm = "是"; } } model.addAttribute("zfbm", zfbm); List> infolist = tpowerResponsibilityService.findTsubpowerResponsibilityByClassid(id); String qzqd = ""; String qzqdid = ""; for (Map res : infolist) { qzqd += res.get("qzqd") + ";"; qzqdid += res.get("qzqdid") + ";"; } model.addAttribute("qzqd", qzqd); model.addAttribute("qzqdid", qzqdid); List fltaglist = dbdcCodeService.findCodeByCodeType("fltag");// model.addAttribute("fltaglist", fltaglist); return "thymeleaf/tinfoclass/tinfoclass_view"; } @RequestMapping("/tinfoclass_save") public String tinfoclassSave(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { String qzqd = request.getParameter("qzqd"); String qzqdid = request.getParameter("qzqdid"); String[] isprimary = request.getParameterValues("isprimary"); String[] xxxmc = request.getParameterValues("xxxmc"); String[] xxxdbmc = request.getParameterValues("xxxdbmc"); String[] xxxbm = request.getParameterValues("xxxbm"); String[] sjymc = request.getParameterValues("sjymc"); String[] sjylbname = request.getParameterValues("sjylbname"); String[] sjylb = request.getParameterValues("sjylb"); String[] sjylbid = request.getParameterValues("sjylbid"); String[] description = request.getParameterValues("description"); String[] subsjylbname = request.getParameterValues("subsjylbname"); String[] subsjylb = request.getParameterValues("subsjylb"); String[] subsjylbid = request.getParameterValues("subsjylbid"); String[] datasize = request.getParameterValues("datasize"); String[] ranges = request.getParameterValues("ranges"); String[] indexnum = request.getParameterValues("indexnum"); String[] xxx_sharetype = request.getParameterValues("xxx_sharetype"); String[] xxx_shareconditions = request.getParameterValues("xxx_shareconditions"); String[] xxx_sharemodename = request.getParameterValues("xxx_sharemodename"); String[] xxx_sharemode = request.getParameterValues("xxx_sharemode"); String[] xxx_sharemodeid = request.getParameterValues("xxx_sharemodeid"); String[] xxx_sharemodetypename = request.getParameterValues("xxx_sharemodetypename"); String[] xxx_sharemodetype = request.getParameterValues("xxx_sharemodetype"); String[] xxx_sharemodetypeid = request.getParameterValues("xxx_sharemodetypeid"); String[] xxx_isopensocial = request.getParameterValues("xxx_isopensocial"); String[] xxx_opencondition = request.getParameterValues("xxx_opencondition"); String[] sjyid = request.getParameterValues("sjyid"); String[] glxxxid = request.getParameterValues("glxxxid"); String[] codesetid = request.getParameterValues("codesetid"); String[] glsjy = request.getParameterValues("glsjy"); TinfoClass result = new TinfoClass(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); boolean iszgbmbz = false; for (Role role : userInfo.getRoles()) { if (role.getRoleId().equals(zgbmbz_role)) { iszgbmbz = true; break; } } // 根据资源分类id,获取precode String infotypeid = dto.getInfotypeid(); String bgflag = request.getParameter("bgflag"); String precode = ""; String seqcode = ""; if (dto.getId() == null || "".equals(dto.getId())) {// 新增 if (iszgbmbz) { dto.setIszgbmbz("1"); } dto.setHitchStatus(0); dto.setId(ToolUtil.getUUID()); if (!ToolUtil.isNull(dto.getBmid())) { // 更新编目任务状态 RequireBMTask requireBMTask = requireBMTaskService.findrequireBMTaskById(dto.getBmid()); if (requireBMTask != null) { requireBMTask.setJindu("正在编目"); requireBMTask.setXxlid(dto.getId()); requireBMTaskService.saveRequireBMTaskInfo(requireBMTask, dto); } } dto.setCreatedate(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); dto.setCreator(userInfo.getUserId()); dto.setCreatorName(userInfo.getUserName()); dto.setVersionid(1); dto.setSubversionid(0); dto.setSourceid(dto.getId()); dto.setLatestversion("1");// 默认最新版本 dto.setInprocess("0");// 未启动流程 dto.setBgstatus("1");// 未变更 result = new TinfoClass(dto); loginfoService.logDealInfo("1", modelType, "信息类新增", "t_infoclass", dto.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); } else if (dto.getId() != null && ToolUtil.isNull(bgflag)) {// 正常修改 TinfoClassDto info = tinfoClassService.findTinfoClassById(dto.getId()); if (iszgbmbz) { info.setIszgbmbz("1"); } info.setInfoname(dto.getInfoname()); info.setInfotype(dto.getInfotype()); info.setManagetype(dto.getManagetype()); info.setIsglqz(dto.getIsglqz()); info.setQzqdDes(dto.getQzqdDes()); info.setInfotypeid(dto.getInfotypeid()); info.setInfotypename(dto.getInfotypename()); info.setProvidezgcode(dto.getProvidezgcode()); info.setProvidezgname(dto.getProvidezgname()); info.setProvidename(dto.getProvidename()); info.setProvidebmcode(dto.getProvidebmcode()); info.setProvidebmname(dto.getProvidebmname()); info.setInfoabstracts(dto.getInfoabstracts()); info.setFormattype(dto.getFormattype()); info.setFormattypeid(dto.getFormattypeid()); info.setFormattypename(dto.getFormattypename()); info.setSubformattype(dto.getSubformattype()); info.setSubformattypename(dto.getSubformattypename()); info.setSubformattypeid(dto.getSubformattypeid()); info.setSharetype(dto.getSharetype()); info.setShareconditions(dto.getShareconditions()); info.setIsopensocial(dto.getIsopensocial()); info.setOpencondition(dto.getOpencondition()); info.setUpdatecycle(dto.getUpdatecycle()); info.setDatarange(dto.getDatarange()); info.setSysteminfo(dto.getSysteminfo()); info.setIssecret(dto.getIssecret()); info.setSharemode(dto.getSharemode()); info.setSharemodeid(dto.getSharemodeid()); info.setSharemodename(dto.getSharemodename()); info.setSharemodetype(dto.getSharemodetype()); info.setSharemodetypeid(dto.getSharemodetypeid()); info.setSharemodetypename(dto.getSharemodetypename()); info.setUpdator(userInfo.getUserId()); info.setUpdatorName(userInfo.getUserName()); info.setUpdatetime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setCreditno(dto.getCreditno()); info.setXzqhcode(dto.getXzqhcode()); info.setXzqhid(dto.getXzqhid()); info.setXzqhname(dto.getXzqhname()); info.setYwbmcode(dto.getYwbmcode()); info.setYwbmid(dto.getYwbmid()); info.setYwbmname(dto.getYwbmname()); info.setParalleltime(dto.getParalleltime()); info.setSwitchingtime(dto.getSwitchingtime()); info.setChangeinstructions(dto.getChangeinstructions()); info.setFltag(dto.getFltag()); result = new TinfoClass(info); loginfoService.logDealInfo("2", modelType, "信息类更新", "t_infoclass", result.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); } else if (dto.getId() != null && !ToolUtil.isNull(bgflag)) {// 数据变更,infocode不变 TinfoClassDto info = tinfoClassService.findTinfoClassById(dto.getId()); // 通过前缀码获取序列码 dto.setHitchStatus(0); dto.setInfocode(info.getInfocode()); dto.setId(ToolUtil.getUUID()); dto.setCreatedate(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); dto.setCreator(userInfo.getUserId()); dto.setCreatorName(userInfo.getUserName()); dto.setVersionid(info.getVersionid() + 1); dto.setSubversionid(0); dto.setSourceid(info.getSourceid()); dto.setParentid(info.getId()); dto.setLatestversion("0");// 默认最新版本 dto.setInprocess("0");// 未启动流程 dto.setIsbg(bgflag); if (iszgbmbz) { dto.setIszgbmbz("1"); } dto.setBgstatus("1");// 未变更 if (!ToolUtil.isNull(dto.getBgid())) {// 如果是需求方申请变更的数据,更新需求方的数据状态 TchangeApplyDto tchangeApply = tchangeApplyService.byone(dto.getBgid()); tchangeApply.setState("5"); tchangeApply.setLatesttinfoclassid(dto.getId()); tchangeApplyService.TchangeApplysave(tchangeApply); } info.setBgstatus("2");// 更新父版本的变更状态 tinfoClassService.saveTinfoClass(new TinfoClass(info)); result = new TinfoClass(dto); loginfoService.logDealInfo("1", modelType, "信息类新增", "t_infoclass", result.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); } result.setIszc("1"); tinfoClassService.saveTinfoClass(result); // 获取关联系统信息 String systeminfoname = request.getParameter("systeminfoname") == null ? "" : request.getParameter("systeminfoname"); String systeminfoid = request.getParameter("systeminfoid") == null ? "" : request.getParameter("systeminfoid"); String[] systeminfonames = systeminfoname.split(";"); String[] systeminfoids = systeminfoid.split(";"); tsystemInfoAndInfoClassService.saveRelationShip(systeminfonames, systeminfoids, result.getId()); // 获取管理事项信息 String ywsxid = request.getParameter("ywsxid") == null ? "" : request.getParameter("ywsxid"); String ywsx = request.getParameter("ywsx") == null ? "" : request.getParameter("ywsx"); String[] ywsxids = ywsxid.split(";"); String[] ywsxs = ywsx.split(";"); tbusinessItemAndInfoClassService.saveRelationShip(ywsxids, ywsxs, result.getId()); int length = 0; if (isprimary != null) { length = isprimary.length; } if (length == 1) { if (xxxmc.length == 0) { xxxmc = new String[1]; xxxmc[0] = ""; } if (xxxdbmc.length == 0) { xxxdbmc = new String[1]; xxxdbmc[0] = ""; } if (sjymc.length == 0) { sjymc = new String[1]; sjymc[0] = ""; } if (sjylbname.length == 0) { sjylbname = new String[1]; sjylbname[0] = ""; } if (sjylb.length == 0) { sjylb = new String[1]; sjylb[0] = ""; } if (sjylbid.length == 0) { sjylbid = new String[1]; sjylbid[0] = ""; } if (description.length == 0) { description = new String[1]; description[0] = ""; } if (subsjylbname.length == 0) { subsjylbname = new String[1]; subsjylbname[0] = ""; } if (subsjylb.length == 0) { subsjylb = new String[1]; subsjylb[0] = ""; } if (subsjylbid.length == 0) { subsjylbid = new String[1]; subsjylbid[0] = ""; } if (datasize.length == 0) { datasize = new String[1]; datasize[0] = ""; } if (ranges.length == 0) { ranges = new String[1]; ranges[0] = ""; } if (indexnum.length == 0) { indexnum = new String[1]; indexnum[0] = "0"; } // if (xxx_sharetype.length == 0) { // xxx_sharetype = new String[1]; // xxx_sharetype[0] = ""; // } // if (xxx_shareconditions.length == 0) { // xxx_shareconditions = new String[1]; // xxx_shareconditions[0] = ""; // } // if (xxx_sharemodename.length == 0) { // xxx_sharemodename = new String[1]; // // xxx_sharemodename[0] = ""; // } // if (xxx_sharemode.length == 0) { // xxx_sharemode = new String[1]; // xxx_sharemode[0] = ""; // } // if (xxx_sharemodeid.length == 0) { // xxx_sharemodeid = new String[1]; // xxx_sharemodeid[0] = ""; // } // if (xxx_sharemodetypename.length == 0) { // xxx_sharemodetypename = new String[1]; // xxx_sharemodetypename[0] = ""; // } // if (xxx_sharemodetype.length == 0) { // xxx_sharemodetype = new String[1]; // xxx_sharemodetype[0] = ""; // } // if (xxx_sharemodetypeid.length == 0) { // xxx_sharemodetypeid = new String[1]; // xxx_sharemodetypeid[0] = ""; // } // if (xxx_isopensocial.length == 0) { // xxx_isopensocial = new String[1]; // xxx_isopensocial[0] = ""; // } // if (xxx_opencondition.length == 0) { // xxx_opencondition = new String[1]; // // xxx_opencondition[0] = ""; // } if (codesetid.length == 0) { codesetid = new String[1]; codesetid[0] = ""; } if (glsjy.length == 0) { glsjy = new String[1]; glsjy[0] = "否"; } if (sjyid.length == 0) { sjyid = new String[1]; sjyid[0] = ""; } if (glxxxid.length == 0) { glxxxid = new String[1]; glxxxid[0] = ""; } } List tinfoclassDatametaList = new ArrayList(); TinfoclassDatameta tdata = new TinfoclassDatameta(); for (int i = 0; i < length; i++) { tdata = new TinfoclassDatameta(); tdata.setIsprimary(isprimary[i]); tdata.setId(ToolUtil.getUUID()); tdata.setXxxmc(xxxmc[i]); tdata.setXxxdbmc(xxxdbmc[i]); tdata.setXxxbm(xxxbm[i]); tdata.setGlsjy(glsjy[i]); tdata.setGlxxxid(glxxxid[i]); // tdata.setSharetype(xxx_sharetype[i]); // tdata.setShareconditions(xxx_shareconditions[i]); // tdata.setSharemodename(xxx_sharemodename[i]); // tdata.setSharemodeid(xxx_sharemodeid[i]); // tdata.setSharemode(xxx_sharemode[i]); // tdata.setSharemodetypename(xxx_sharemodetypename[i]); // tdata.setSharemodetype(xxx_sharemodetype[i]); // tdata.setSharemodetypeid(xxx_sharemodetypeid[i]); // tdata.setIsopensocial(xxx_isopensocial[i]); // tdata.setOpencondition(xxx_opencondition[i]); tdata.setMetacode(sjylb[i]); tdata.setMetacodeDis(sjylbname[i]); tdata.setMetacodeid(sjylbid[i]); tdata.setDescription(description[i]); tdata.setDatatype(subsjylb[i]); tdata.setDatatypeDis(subsjylbname[i]); tdata.setDatatypeid(subsjylbid[i]); tdata.setMetaname(sjymc[i]); tdata.setDatasize(datasize[i]); tdata.setRanges(ranges[i]); if (!ToolUtil.isNull(codesetid[i])) { TcodeSetDto datametaCodeset = tcodeSetService.byCodesetId(codesetid[i]); TcodeSet tcodeSet = new TcodeSet(); BeanUtils.copyProperties(datametaCodeset, tcodeSet); tdata.setDatametaCodeset(tcodeSet); } tdata.setDatametaid(sjyid[i]); tdata.setIndexnum(Integer.parseInt(indexnum[i])); tdata.setTinfoClass1(result); tinfoclassDatametaList.add(tdata); } String glzyflid = request.getParameter("glzyflid"); List tinfoclassResList = new ArrayList(); TinfoclassRes tinfoclassRes = new TinfoclassRes(); if (!ToolUtil.isNull(glzyflid)) { for (String zyid : glzyflid.split(",")) { if (!ToolUtil.isNull(zyid)) { tinfoclassRes = new TinfoclassRes(); tinfoclassRes.setId(ToolUtil.getUUID()); tinfoclassRes.setTresClassify(tresClassifyService.findTresClassifyById(zyid)); tinfoclassRes.setTinfoClass2(result); tinfoclassResList.add(tinfoclassRes); } } } if (tinfoclassDatametaList.size() > 0 || tinfoclassResList.size() > 0) { tinfoclassDatametaService.saveInfoList(tinfoclassDatametaList, tinfoclassResList, result); } tinfoclassDatametaService.saveTsubresInfoclass(qzqd.split(";"), qzqdid.split(";"), result); String state = request.getParameter("state"); if ("1".equals(state)) {// 提交审核 Map variables = new HashMap(); ProcessInstance p = workflowService.saveStartProcess("infoClassZc", variables, result.getId());// 启动流程 // 更新业务表状态 processID,inprocess字段 result.setProcessid(p.getProcessInstanceId()); result.setInprocess("1"); result.setTaskname("部门审核"); if (iszgbmbz) { result.setIszgbmbz("1"); } else { result.setIszgbmbz(null); } tinfoClassService.saveTinfoClass(result); businessProcessService.saveInfo(p.getProcessInstanceId(), result.getId(), "t_infoclass", userInfo.getUserId()); } return "thymeleaf/dcbccode/success"; } /** * * @Description: 编目人员修改,并提交审核 * @param model * @param dto * @param isprimary * @param xxxmc * @param sjymc * @param sjylbname * @param sjylb * @param sjylbid * @param description * @param subsjylbname * @param subsjylb * @param subsjylbid * @param datasize * @param ranges * @param indexnum * @param xxx_sharetype * @param xxx_shareconditions * @param xxx_sharemodename * @param xxx_sharemode * @param xxx_sharemodeid * @param xxx_sharemodetypename * @param xxx_sharemodetype * @param xxx_sharemodetypeid * @param xxx_isopensocial * @param xxx_opencondition * @param sjyid * @param codesetid * @param glsjy * @param taskId * @param outcome * @param message * @param request * @param response * @return String * @throws @author lijiezhi * @date 2018年1月18日 */ @RequestMapping("/tinfoclass_bmryAudit") public String tinfoclassBmryAudit(Model model, TinfoClassDto dto, String[] isprimary, String[] xxxmc, String[] sjymc, String[] sjylbname, String[] sjylb, String[] sjylbid, String[] description, String[] subsjylbname, String[] subsjylb, String[] subsjylbid, String[] datasize, String[] ranges, String[] indexnum, String[] xxx_sharetype, String[] xxx_shareconditions, String[] xxx_sharemodename, String[] xxx_sharemode, String[] xxx_sharemodeid, String[] xxx_sharemodetypename, String[] xxx_sharemodetype, String[] xxx_sharemodetypeid, String[] xxx_isopensocial, String[] xxx_opencondition, String[] sjyid, String[] codesetid, String[] glsjy,String[] glxxxid, String taskId, String outcome, String message, HttpServletRequest request, HttpServletResponse response) { String qzqd = request.getParameter("qzqd"); String qzqdid = request.getParameter("qzqdid"); TinfoClass result = new TinfoClass(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); // 根据资源分类id,获取precode String infotypeid = dto.getInfotypeid(); String bgflag = request.getParameter("bgflag"); String precode = ""; String seqcode = ""; if (dto.getId() != null && ToolUtil.isNull(bgflag)) {// 正常修改 TinfoClassDto info = tinfoClassService.findTinfoClassById(dto.getId()); info.setInfoname(dto.getInfoname()); info.setInfotype(dto.getInfotype()); info.setInfotypeid(dto.getInfotypeid()); info.setInfotypename(dto.getInfotypename()); info.setProvidezgcode(dto.getProvidezgcode()); info.setProvidezgname(dto.getProvidezgname()); info.setProvidebmcode(dto.getProvidebmcode()); info.setProvidebmname(dto.getProvidebmname()); info.setProvidecode(dto.getProvidecode()); info.setProvidename(dto.getProvidename()); info.setInfoabstracts(dto.getInfoabstracts()); info.setFormattype(dto.getFormattype()); info.setFormattypeid(dto.getFormattypeid()); info.setFormattypename(dto.getFormattypename()); info.setSubformattype(dto.getSubformattype()); info.setSubformattypename(dto.getSubformattypename()); info.setSubformattypeid(dto.getSubformattypeid()); info.setSharetype(dto.getSharetype()); info.setShareconditions(dto.getShareconditions()); info.setIsopensocial(dto.getIsopensocial()); info.setOpencondition(dto.getOpencondition()); info.setUpdatecycle(dto.getUpdatecycle()); info.setDatarange(dto.getDatarange()); info.setSysteminfo(dto.getSysteminfo()); info.setIssecret(dto.getIssecret()); info.setSharemode(dto.getSharemode()); info.setSharemodeid(dto.getSharemodeid()); info.setSharemodename(dto.getSharemodename()); info.setSharemodetype(dto.getSharemodetype()); info.setSharemodetypeid(dto.getSharemodetypeid()); info.setSharemodetypename(dto.getSharemodetypename()); info.setUpdator(userInfo.getUserId()); info.setUpdatorName(userInfo.getUserName()); info.setUpdatetime(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setCreditno(dto.getCreditno()); info.setXzqhcode(dto.getXzqhcode()); info.setXzqhid(dto.getXzqhid()); info.setXzqhname(dto.getXzqhname()); info.setYwbmcode(dto.getYwbmcode()); info.setYwbmid(dto.getYwbmid()); info.setYwbmname(dto.getYwbmname()); info.setManagetype(dto.getManagetype()); info.setIsglqz(dto.getIsglqz()); info.setParalleltime(dto.getParalleltime()); info.setSwitchingtime(dto.getSwitchingtime()); info.setFltag(dto.getFltag()); info.setChangeinstructions(dto.getChangeinstructions()); if("否".equals(dto.getIsglqz())) { info.setQzqdDes(dto.getQzqdDes());} else { info.setQzqdDes("");} result = new TinfoClass(info); } tinfoClassService.saveTinfoClass(result); // 获取关联系统信息 String systeminfoname = request.getParameter("systeminfoname") == null ? "" : request.getParameter("systeminfoname"); String systeminfoid = request.getParameter("systeminfoid") == null ? "" : request.getParameter("systeminfoid"); String[] systeminfonames = systeminfoname.split(";"); String[] systeminfoids = systeminfoid.split(";"); tsystemInfoAndInfoClassService.saveRelationShip(systeminfonames, systeminfoids, result.getId()); // 获取管理事项信息 String ywsxid = request.getParameter("ywsxid") == null ? "" : request.getParameter("ywsxid"); String ywsx = request.getParameter("ywsx") == null ? "" : request.getParameter("ywsx"); String[] ywsxids = ywsxid.split(";"); String[] ywsxs = ywsx.split(";"); tbusinessItemAndInfoClassService.saveRelationShip(ywsxids, ywsxs, result.getId()); int length = 0; if (isprimary != null) { length = isprimary.length; } if (length == 1) { if (xxxmc.length == 0) { xxxmc = new String[1]; xxxmc[0] = ""; } if (sjymc.length == 0) { sjymc = new String[1]; sjymc[0] = ""; } if (sjylbname.length == 0) { sjylbname = new String[1]; sjylbname[0] = ""; } if (sjylb.length == 0) { sjylb = new String[1]; sjylb[0] = ""; } if (sjylbid.length == 0) { sjylbid = new String[1]; sjylbid[0] = ""; } if (description.length == 0) { description = new String[1]; description[0] = ""; } if (subsjylbname.length == 0) { subsjylbname = new String[1]; subsjylbname[0] = ""; } if (subsjylb.length == 0) { subsjylb = new String[1]; subsjylb[0] = ""; } if (subsjylbid.length == 0) { subsjylbid = new String[1]; subsjylbid[0] = ""; } if (datasize.length == 0) { datasize = new String[1]; datasize[0] = ""; } if (ranges.length == 0) { ranges = new String[1]; ranges[0] = ""; } if (indexnum.length == 0) { indexnum = new String[1]; indexnum[0] = "0"; } // if (xxx_sharetype.length == 0) { // xxx_sharetype = new String[1]; // xxx_sharetype[0] = ""; // } // if (xxx_shareconditions.length == 0) { // xxx_shareconditions = new String[1]; // xxx_shareconditions[0] = ""; // } // if (xxx_sharemodename.length == 0) { // xxx_sharemodename = new String[1]; // // xxx_sharemodename[0] = ""; // } // if (xxx_sharemode.length == 0) { // xxx_sharemode = new String[1]; // xxx_sharemode[0] = ""; // } // if (xxx_sharemodeid.length == 0) { // xxx_sharemodeid = new String[1]; // xxx_sharemodeid[0] = ""; // } // if (xxx_sharemodetypename.length == 0) { // xxx_sharemodetypename = new String[1]; // xxx_sharemodetypename[0] = ""; // } // if (xxx_sharemodetype.length == 0) { // xxx_sharemodetype = new String[1]; // xxx_sharemodetype[0] = ""; // } // if (xxx_sharemodetypeid.length == 0) { // xxx_sharemodetypeid = new String[1]; // xxx_sharemodetypeid[0] = ""; // } // if (xxx_isopensocial.length == 0) { // xxx_isopensocial = new String[1]; // xxx_isopensocial[0] = ""; // } // if (xxx_opencondition.length == 0) { // xxx_opencondition = new String[1]; // // xxx_opencondition[0] = ""; // } if (codesetid.length == 0) { codesetid = new String[1]; codesetid[0] = ""; } if (glsjy.length == 0) { glsjy = new String[1]; glsjy[0] = "否"; } if (sjyid.length == 0) { sjyid = new String[1]; sjyid[0] = ""; } if (glxxxid.length == 0) { glxxxid = new String[1]; glxxxid[0] = ""; } } List tinfoclassDatametaList = new ArrayList(); TinfoclassDatameta tdata = new TinfoclassDatameta(); for (int i = 0; i < length; i++) { tdata = new TinfoclassDatameta(); tdata.setId(ToolUtil.getUUID()); tdata.setIsprimary(isprimary[i]); tdata.setXxxmc(xxxmc[i]); tdata.setGlsjy(glsjy[i]); tdata.setGlxxxid(glxxxid[i]); // tdata.setSharetype(xxx_sharetype[i]); // tdata.setShareconditions(xxx_shareconditions[i]); // tdata.setSharemodename(xxx_sharemodename[i]); // tdata.setSharemodeid(xxx_sharemodeid[i]); // tdata.setSharemode(xxx_sharemode[i]); // tdata.setSharemodetypename(xxx_sharemodetypename[i]); // tdata.setSharemodetype(xxx_sharemodetype[i]); // tdata.setSharemodetypeid(xxx_sharemodetypeid[i]); // tdata.setIsopensocial(xxx_isopensocial[i]); // tdata.setOpencondition(xxx_opencondition[i]); tdata.setMetacode(sjylb[i]); tdata.setMetacodeDis(sjylbname[i]); tdata.setMetacodeid(sjylbid[i]); tdata.setDatatype(subsjylb[i]); tdata.setDatatypeDis(subsjylbname[i]); tdata.setDatatypeid(subsjylbid[i]); tdata.setMetaname(sjymc[i]); tdata.setDatasize(datasize[i]); tdata.setDescription(description[i]); tdata.setRanges(ranges[i]); if (!ToolUtil.isNull(codesetid[i])) { TcodeSetDto datametaCodeset = tcodeSetService.byCodesetId(codesetid[i]); TcodeSet tcodeSet = new TcodeSet(); BeanUtils.copyProperties(datametaCodeset, tcodeSet); tdata.setDatametaCodeset(tcodeSet); } tdata.setDatametaid(sjyid[i]); tdata.setIndexnum(Integer.parseInt(indexnum[i])); tdata.setTinfoClass1(result); tinfoclassDatametaList.add(tdata); } String glzyflid = request.getParameter("glzyflid"); List tinfoclassResList = new ArrayList(); TinfoclassRes tinfoclassRes = new TinfoclassRes(); if (!ToolUtil.isNull(glzyflid)) { for (String zyid : glzyflid.split(",")) { if (!ToolUtil.isNull(zyid)) { tinfoclassRes = new TinfoclassRes(); tinfoclassRes.setId(ToolUtil.getUUID()); tinfoclassRes.setTresClassify(tresClassifyService.findTresClassifyById(zyid)); tinfoclassRes.setTinfoClass2(result); tinfoclassResList.add(tinfoclassRes); } } } if (tinfoclassDatametaList.size() > 0 || tinfoclassResList.size() > 0) { tinfoclassDatametaService.saveInfoList(tinfoclassDatametaList, tinfoclassResList, result); } tinfoclassDatametaService.saveTsubresInfoclass(qzqd.split(";"), qzqdid.split(";"), result); loginfoService.logDealInfo("2", modelType, "信息类更新", "t_infoclass", result.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); Map variables = new HashMap(); workflowService.saveSubmitTask(taskId, outcome, message, variables, userInfo); return "thymeleaf/dcbccode/success"; } /** * * @Description: 信息类提供方选择页面 * @param model * @param dto * @param request * @param response * @return String * @throws @author lijiezhi_pc * @date 2017年12月31日 */ @RequestMapping("/dept_choose") public String deptChoose(String type, Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { model.addAttribute("type", type); return "thymeleaf/tinfoclass/dept_choose"; } @RequestMapping("/tinfoclass_item-{codetype}") @ResponseBody public List tinfoclassItem(@PathVariable("codetype") String codetype, Model model, HttpServletRequest request, HttpServletResponse response) { List list = dbdcCodeService.findCodeByCodeType(codetype);// 获取信息资源格式 List result = new ArrayList(); CodeDto codeinfo = null; for (CodeDto code : list) { codeinfo = new CodeDto(); codeinfo.setCodeCode(code.getCodeCode()); codeinfo.setCodeName(code.getCodeName()); codeinfo.setCodeValue(code.getCodeValue()); codeinfo.setId(code.getId()); result.add(codeinfo); } return result; } /** * 判断目录名称是否存在 * @param request * @param response * @return */ @RequestMapping(value = "/infonameUnique") public @ResponseBody Map infonameUnique(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap(); String infoname =request.getParameter("infoname"); String providebmcode =request.getParameter("providebmcode"); String id =request.getParameter("id"); map.put("exist", "0"); List list = tinfoClassService.findListByInfonameAndProviceBmcode(infoname,providebmcode); if(list!=null&&list.size()>0) { if(ToolUtil.isNull(id)) { map.put("exist", "1"); } else { TinfoClass info = tinfoClassService.findTinfoClassById2(id); for(TinfoClass t:list) { if(!t.getSourceid().equals(info.getSourceid())) { map.put("exist", "1"); } } } } map.put("remark", "success"); return map; } @RequestMapping(value = "/tinfoclass_delete{id}") public @ResponseBody Map tinfoclassDelete(@PathVariable("id") String id, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap(); TinfoClassDto tinfoClass = tinfoClassService.findTinfoClassById(id); if (!ToolUtil.isNull(tinfoClass.getParentid()) && !ToolUtil.isNull(tinfoClass.getIsbg())) { TinfoClassDto ptinfoClass = tinfoClassService.findTinfoClassById(tinfoClass.getParentid()); ptinfoClass.setBgstatus("1"); tinfoClassService.saveTinfoClass(new TinfoClass(ptinfoClass)); } tinfoClass.setInprocess("4"); tinfoClassService.saveTinfoClass(new TinfoClass(tinfoClass)); map.put("remark", "success"); loginfoService.logDealInfo("4", modelType, "信息类删除", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return map; } @RequestMapping(value = "/zyflcheck{id}") public @ResponseBody Map zyflcheck(@PathVariable("id") String id, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); String tinfoClass = tinfoClassService.getPrecodeByInfoTypeid(id); map.put("remark", tinfoClass); return map; } @RequestMapping("/tingyong_save") public String tingyongSave(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String aduitdate = ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss"); TinfoClassDto tinfoClass = tinfoClassService.findTinfoClassById(dto.getId()); if("否".equals(dto.getIsremovedata())) { // tinfoClass.setInprocess("5"); // tinfoClass.setDisablestate("2"); tinfoClass.setDisablestate("1"); tinfoClass.setDisabletime(aduitdate); } else { tinfoClass.setDisablestate("1"); tinfoClass.setDisabletime(aduitdate); } tinfoClass.setDisabledesc(dto.getDisabledesc()); tinfoClass.setIsremovedata(dto.getIsremovedata()); tinfoClass.setTytype(dto.getTytype()); tinfoClassService.saveTinfoClass(new TinfoClass(tinfoClass)); loginfoService.logDealInfo("2", modelType, "信息类停用提交", "t_infoclass", dto.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/dcbccode/success"; } @RequestMapping("/tingyong_check") public String tingyongCheck(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String outcome=request.getParameter("outcome"); String opinion=request.getParameter("opinion"); String deptid=request.getParameter("deptid"); Dept dept = deptService.findById(deptid); String aduitdate = ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss"); CommonAduitrecord record =new CommonAduitrecord(); record.setId(ToolUtil.getUUID()); record.setBusid(dto.getId()); record.setBustable("t_infoclass"); record.setAduitresult(outcome); record.setAduitopinion(opinion); record.setAduitman(userInfo.getUserName()); record.setAduitid(userInfo.getUserId()); record.setAduitdeptid(deptid); record.setAduitdeptname(dept.getDeptName()); record.setAduitdate(aduitdate); record.setAduitrole("主管部门管理员"); record.setTaskname("主管部门审核"); commonAduitrecordService.saveCommonAduitrecord(record); TinfoClassDto tinfoClass = tinfoClassService.findTinfoClassById(dto.getId()); if("审核通过".equals(outcome)) { tinfoClass.setInprocess("5"); tinfoClass.setDisablestate("2"); tinfoClass.setDisabletime(aduitdate); } else { tinfoClass.setDisablestate("3"); tinfoClass.setDisabletime(aduitdate); } tinfoClassService.saveTinfoClass(new TinfoClass(tinfoClass)); loginfoService.logDealInfo("2", modelType, "信息类停用审核("+outcome+")", "t_infoclass", dto.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/dcbccode/success"; } @RequestMapping(value = "/tinfoclass_qt") public @ResponseBody Map tinfoclassQt(String id, String status, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); TinfoClassDto tinfoClass = tinfoClassService.findTinfoClassById(id); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); tinfoClass.setInprocess(status); if(status.equals("2")) {//重置禁用申请的相关字段 tinfoClass.setDisabledesc(""); tinfoClass.setDisablestate(""); tinfoClass.setDisabletime(""); tinfoClass.setIsremovedata(""); } tinfoClassService.saveTinfoClass(new TinfoClass(tinfoClass)); map.put("remark", "success"); if (status.equals("2")) { loginfoService.logDealInfo("2", modelType, "信息类更新(启用)", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); } else { loginfoService.logDealInfo("2", modelType, "信息类更新(禁用)", "t_infoclass", id, ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); } return map; } // word导出 @RequestMapping(value = "/exportWord") void exportSimpleWord(Model model, HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "ids", required = false) String ids) throws IOException { Map dataMap = tinfoClassService.getData(ids); Configuration configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); configuration.setClassForTemplateLoading(this.getClass(), "/templates/mailTemplate"); // FTL文件所存在的位置 InputStream fin = null; ServletOutputStream o = null; File outFile = null; File file = new File(save_path); // 判断文件夹是否存在,如果不存在则创建文件夹 if (!file.exists()) { file.mkdirs(); } try { Template t = configuration.getTemplate("tinfoclass.ftl"); // 文件名 outFile = new File(save_path + File.separator + new Date().getTime() + ".doc"); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8")); t.process(dataMap, out); out.close(); fin = new FileInputStream(outFile); response.setCharacterEncoding("utf-8"); response.setContentType("application/msword"); response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("信息类列表.doc", "UTF-8")); o = response.getOutputStream(); byte[] buffer = new byte[1024]; // 缓冲区 int bytesToRead = 0; while ((bytesToRead = fin.read(buffer)) > 0) { o.write(buffer, 0, bytesToRead); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (fin != null) fin.close(); if (o != null) o.close(); if (outFile != null) outFile.delete(); // 删除临时文件 } } @RequestMapping(value = "/applyInfo") public String applyInfo(Model model, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, IllegalAccessException { String id = request.getParameter("id"); model.addAttribute("id", id); return "thymeleaf/tinfoclass/tinfoclass_applyInfo"; } @RequestMapping("/applyInfo_json") public Map applyInfo_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); String classid = request.getParameter("classid"); Map dto = new HashMap(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, Map.class); } dto.put("classid", classid); if(dto.get("state")!=null&&!"".equals(dto.get("state"))) { if(!"023".contains(dto.get("state")+"")) { if("已实施".equals(dto.get("state"))) { dto.put("actualize", 1); dto.put("state","2"); } else if("未实施".equals(dto.get("state"))) { dto.put("actualize", 0); dto.put("state","2"); } else { dto.put("taskname",dto.get("state")); dto.put("state",""); } } } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTshareApplyByClassid(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping("/serviceInfo_json") public Map serviceInfo_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); String classid = request.getParameter("classid"); Map dto = new HashMap(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, Map.class); } dto.put("classid", classid); String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findserviceInfoByClassid(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping(value = "/serviceInfo") public String serviceInfo(Model model, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, IllegalAccessException { String id = request.getParameter("id"); model.addAttribute("id", id); return "thymeleaf/tinfoclass/tinfoclass_serviceInfo"; } @RequestMapping(value = "/compareInfo") public String compareInfo(Model model, HttpServletRequest request, HttpServletResponse response) throws IllegalArgumentException, IllegalAccessException { List> maplist = new ArrayList>(); String id = request.getParameter("id"); TinfoClassDto tinfoClass = tinfoClassService.findTinfoClassById(id); TinfoClassDto tinfoClass2 = tinfoClassService.findTinfoClassById(tinfoClass.getParentid()); Map compareCols = new HashMap<>(); // 设置需要比较的字段,并进行对比 compareCols.put("infoname", "信息类名称"); compareCols.put("infotypename", "资源分类"); compareCols.put("providename", "信息类提供方"); compareCols.put("formattypename", "信息资源格式"); compareCols.put("subformattypename", "信息资源格式分类"); compareCols.put("providebmname", "提供方部门"); compareCols.put("providezgname", "提供方主管部门"); compareCols.put("infoabstracts", "信息类摘要"); compareCols.put("sharetype", "共享类型"); compareCols.put("isopensocial", "是否向社会开放"); compareCols.put("shareconditions", "共享条件"); compareCols.put("opencondition", "开放条件"); compareCols.put("updatecycle", "更新频率"); compareCols.put("systeminfo", "关联系统名称"); compareCols.put("datarange", "数据范围"); compareCols.put("sharemodetypename", "共享方式分类"); compareCols.put("sharemodename", "共享方式"); compareCols.put("issecret", "是否涉密"); maplist = ToolUtil.compareTwoClass(tinfoClass2, tinfoClass, compareCols); // 关联资源分类对比 String zyflname1 = ""; for (TinfoclassRes res : tinfoClass.getTinfoclassResList()) { zyflname1 += res.getTresClassify().getResname() + ","; } String zyflname2 = ""; for (TinfoclassRes res : tinfoClass2.getTinfoclassResList()) { zyflname2 += res.getTresClassify().getResname() + ","; } if (!zyflname1.equals(zyflname2)) { Map map2 = new HashMap(); map2.put("zwname", "关联资源分类"); map2.put("name", "glzyfl"); map2.put("old", zyflname2); map2.put("new", zyflname1); maplist.add(map2); } // 对比信息项 List xxxList1 = tinfoClass2.getTinfoclassDatametaList(); List xxxList2 = tinfoClass.getTinfoclassDatametaList(); List xxxDelList = new ArrayList(); List> xxxModifyList = new ArrayList>(); List xxxSameList = new ArrayList(); List> xxxUpdateList = new ArrayList>(); List xxxAddList = new ArrayList(); for (TinfoclassDatameta data : xxxList1) { Boolean isdel = true; for (TinfoclassDatameta data2 : xxxList2) { if (data.getXxxmc().equals(data2.getXxxmc())) { Map map = new HashMap<>(); map.put("old", data); map.put("new", data2); xxxModifyList.add(map); isdel = false; break; } } if (isdel) { xxxDelList.add(data); } } for (TinfoclassDatameta data2 : xxxList2) { Boolean isAdd = true; for (TinfoclassDatameta data1 : xxxList1) { if (data2.getXxxmc().equals(data1.getXxxmc())) { isAdd = false; break; } } if (isAdd) { xxxAddList.add(data2); } } // 设置信息项要对比的内容 Map xxxcompareCols = new HashMap<>(); xxxcompareCols.put("xxxmc", "信息项名称"); xxxcompareCols.put("glsjy", "关联数据元"); xxxcompareCols.put("metaname", "数据元名称"); xxxcompareCols.put("metacodeDis", "数据元类别"); xxxcompareCols.put("datatypeDis", "数据元类型"); xxxcompareCols.put("datasize", "长度"); xxxcompareCols.put("ranges", "值域"); xxxcompareCols.put("indexnum", "排序值"); xxxcompareCols.put("description", "说明"); xxxcompareCols.put("sharetype", "共享类型"); xxxcompareCols.put("shareconditions", "共享条件"); xxxcompareCols.put("sharemodename", "共享方式"); xxxcompareCols.put("sharemodetypename", "共享类别"); xxxcompareCols.put("isopensocial", "是否向社会开放"); xxxcompareCols.put("opencondition", "开放条件"); for (Map map : xxxModifyList) { TinfoclassDatameta oldinfo = (TinfoclassDatameta) map.get("old"); TinfoclassDatameta newinfo = (TinfoclassDatameta) map.get("new"); List> xxxmaplist = new ArrayList>(); xxxmaplist = ToolUtil.compareTwoClass(oldinfo, newinfo, xxxcompareCols); String codesetNameOld = ""; String codesetNameNew = ""; if (oldinfo.getDatametaCodeset() != null) { codesetNameOld = oldinfo.getDatametaCodeset().getCodesetName() == null ? "" : oldinfo.getDatametaCodeset().getCodesetName(); } if (newinfo.getDatametaCodeset() != null) { codesetNameNew = newinfo.getDatametaCodeset().getCodesetName() == null ? "" : newinfo.getDatametaCodeset().getCodesetName(); } if (!codesetNameOld.equals(codesetNameNew)) { Map map2 = new HashMap(); map2.put("zwname", "关联代码集"); map2.put("name", "gldmj"); map2.put("old", codesetNameOld); map2.put("new", codesetNameNew); xxxmaplist.add(map2); } if (xxxmaplist != null && xxxmaplist.size() > 0) {// 数据有更新 map.put("xxxmaplist", xxxmaplist); xxxUpdateList.add(map); } else { xxxSameList.add(oldinfo); } } model.addAttribute("xxxList2", xxxList2);// 新 model.addAttribute("xxxList1", xxxList1);// 旧 model.addAttribute("maplist", maplist); model.addAttribute("xxxDelList", xxxDelList);// 删除的信息项 model.addAttribute("xxxSameList", xxxSameList);// 未变动的信息项 model.addAttribute("xxxAddList", xxxAddList);// 新增的信息项 model.addAttribute("xxxUpdateList", xxxUpdateList);// 未变动的信息项 return "thymeleaf/tinfoclass/tinfoclass_compareInfo"; } @RequestMapping(value = "/file-import") String tinfoclassImport(Model model, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); TinfoClassDto dto = tinfoClassService.getDefaultInfoByUserId(userInfo.getUserId()); model.addAttribute("dto", dto); // thymeleaf 存在严重的lazy懒加载堆栈溢出bug,需要人工处理 // Dept userdept = deptService.findById(userInfo.getDeptid()); String sql = "SELECT dept_id as id, creditno,dept_abbreviation,dept_desc,dept_index,dept_name as name,dept_property,dept_state,parent_id,pdeptids,xzqhcode,xzqhid,xzqhname,ywbmcode,ywbmid,ywbmname FROM deptinfo WHERE dept_id=?"; Map userdept = jdbcTemplate.queryForMap(sql, new Object[]{userInfo.getDeptid()}); Map parentDept = jdbcTemplate.queryForMap(sql, new Object[]{userdept.get("parent_id")}); model.addAttribute("userdept", userdept); model.addAttribute("parentDept", parentDept); return "thymeleaf/tinfoclass/tinfoclass_import"; } @RequestMapping(value = "/importdata") @ResponseBody Map importdata(Model model, HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "ids", required = false) String ids, @RequestParam("models") String models) { TinfoClass info = new TinfoClass(); List listDto = new ArrayList(); if ((models != null) && (models.length() > 0)) try { listDto = (List) this.objectMapper.readValue(models, new TypeReference>() { }); } catch (JsonParseException e) { log.error("JsonParseException{}:", e.getMessage()); e.printStackTrace(); } catch (IOException e) { log.error("IOException{}:", e.getMessage()); e.printStackTrace(); } if (listDto.size() > 0) info = listDto.get(0); Map map = new HashMap(); map.put("message", "success"); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); String[] id = ids.split(","); for (int i = 0; i < id.length; i++) { UploadDto dto = uploadService.getByone(id[i]); String message = importing(dto.getFile_save_path() + dto.getFile_save_name() + "." + dto.getFile_type(), userInfo, info); if (!message.equals("success")) { message = dto.getFile_name() + message; map.put("message", message); return map; } } return map; } @SuppressWarnings("unused") @RequestMapping(value = "/importing") String importing(String fileName, User userInfo, TinfoClass xzinfo) { List infolist = EasyPoiUtil.importExcel(fileName, 1, 2, TinfoClass.class); String message = "success"; boolean iszgbmbz = false; for (Role role : userInfo.getRoles()) { if (role.getRoleId().equals(zgbmbz_role)) { iszgbmbz = true; break; } } Map map = new HashMap(); int i = 0; for (TinfoClass info : infolist) {// 数据校验,校验数据的合法性 info.setCreatedate(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); info.setCreator(userInfo.getUserId()); info.setCreatorName(userInfo.getUserName()); info.setVersionid(1); info.setHitchStatus(0); info.setLatestversion("1");// 默认最新版本 info.setInprocess("0");// 未启动流程 info.setBgstatus("1");// 未变更 info.setInfotype(xzinfo.getInfotype()); info.setInfotypename(xzinfo.getInfotypename()); info.setInfotypeid(xzinfo.getInfotypeid()); info.setCreditno(xzinfo.getCreditno()); info.setProvidezgname(xzinfo.getProvidezgname()); info.setProvidezgcode(xzinfo.getProvidezgcode()); info.setYwbmcode(xzinfo.getYwbmcode()); info.setYwbmname(xzinfo.getYwbmname()); info.setYwbmid(xzinfo.getYwbmid()); info.setXzqhcode(xzinfo.getXzqhcode()); info.setXzqhid(xzinfo.getXzqhid()); info.setXzqhname(xzinfo.getXzqhname()); info.setProvidebmcode(xzinfo.getProvidebmcode()); info.setProvidebmname(xzinfo.getProvidebmname()); i = i + 1; if (ToolUtil.isNull(info.getInfoname())) { message = "第" + i + "行中信息类名称不能为空"; return message; } if (!ToolUtil.isNull(info.getInfoname()) && info.getInfoname().length() > 200) { message = "第" + i + "行中信息类名称长度不能超过200"; return message; } if (ToolUtil.isNull(info.getFormattypename())) { message = "第" + i + "行中信息资源格式不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("xxzygs")) { if (code != null && code.getId() != null && info.getFormattypename().equals(code.getCodeName())) { info.setFormattype(code.getCodeCode()); info.setFormattypeid(code.getId()); } } if (ToolUtil.isNull(info.getFormattypeid())) { message = "第" + i + "行中信息资源格式未按照模板提供的下拉选项填值"; return message; } } // 信息资源格式分类,要校验 格式与分类是否对应 if (ToolUtil.isNull(info.getSubformattypename())) { message = "第" + i + "行中信息资源格式分类不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(info.getFormattype())) { if (code != null && code.getId() != null && info.getSubformattypename().equals(code.getCodeName())) { info.setSubformattype(code.getCodeCode()); info.setSubformattypeid(code.getId()); } } if (ToolUtil.isNull(info.getSubformattypeid())) { message = "第" + i + "行中信息资源格式分类与信息资源格式不匹配"; return message; } } // 信息类摘要 校验长度 if (!ToolUtil.isNull(info.getInfoabstracts()) && info.getInfoabstracts().length() > 400) { message = "第" + i + "行中信息类摘要不能超过400字符"; return message; } else if (ToolUtil.isNull(info.getInfoabstracts())) { message = "第" + i + "行中信息类摘要不能为空"; return message; } // 共享类型 校验数据格式 if (ToolUtil.isNull(info.getSharetype())) { message = "第" + i + "行中共享类型必填,请选择"; return message; } else { if ("123".contains(info.getSharetype().split("-")[0])) { info.setSharetype(info.getSharetype().split("-")[0]); } else { message = "第" + i + "行中共享类型选择错误,请按照模板选择"; return message; } } // 是否向社会开放 校验数据格式 是否 if (ToolUtil.isNull(info.getIsopensocial())) { message = "第" + i + "行中开放类型必填,请选择"; return message; } else { if (!"不予开放,有条件开放,无条件开放".contains(info.getIsopensocial())) { message = "第" + i + "行中开放类型选择错误,请按照模板选择"; return message; } } // 共享条件 校验长度 if("2".equals(info.getSharetype())) { info.setShareconditions(""); } else { if (!ToolUtil.isNull(info.getShareconditions()) && info.getShareconditions().length() > 400) { message = "第" + i + "行中是共享条件不能超过400字符"; return message; } if(ToolUtil.isNull(info.getShareconditions())){ message = "第" + i + "行中是共享条件不能为空"; return message; } } if("无条件开放".equals(info.getIsopensocial())) { info.setOpencondition(""); } else { // 开放条件 校验长度 if (!ToolUtil.isNull(info.getOpencondition()) && info.getOpencondition().length() > 400) { message = "第" + i + "行中是开放条件不能超过400字符"; return message; } if (ToolUtil.isNull(info.getOpencondition()) ) { message = "第" + i + "行中是开放条件不能为空"; return message; } } // 更新频率 校验数据格式 if (ToolUtil.isNull(info.getUpdatecycle())) { message = "第" + i + "行中更新频率不能为空"; return message; } // 数据范围 校验长度 if (!ToolUtil.isNull(info.getDatarange()) && info.getDatarange().length() > 400) { message = "第" + i + "行中数据范围不能超过400字符"; return message; } // 共享方式 校验数据格式 if (ToolUtil.isNull(info.getSharemodename())) { message = "第" + i + "行中共享方式不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("gxfs")) { if (code != null && code.getId() != null && info.getSharemodename().equals(code.getCodeName())) { info.setSharemode(code.getCodeCode()); info.setSharemodeid(code.getId()); } } if (ToolUtil.isNull(info.getSharemodeid())) { message = "第" + i + "行中共享方式请按模板选择"; return message; } } // 共享方式分类 if (ToolUtil.isNull(info.getSharemodetypename())) { message = "第" + i + "行中共享方式分类不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(info.getSharemode())) { if (code != null && code.getId() != null && info.getSharemodetypename().equals(code.getCodeName())) { info.setSharemodetype(code.getCodeCode()); info.setSharemodetypeid(code.getId()); } } if (ToolUtil.isNull(info.getSharemodetypeid())) { message = "第" + i + "行中共享方式分类与共享方式不匹配"; return message; } } // 是否加密 // if (ToolUtil.isNull(info.getIssecret())) { // message = "第" + i + "行中是否加密必填,请选择"; // return message; // // } else { // if (!"是否".contains(info.getIssecret())) { // message = "第" + i + "行中是否加密选择错误,请按照模板选择"; // return message; // } // } // 是否加密 if (ToolUtil.isNull(info.getManagetype())) { message = "第" + i + "行中是否系统支撑必填,请选择"; return message; } else { if (!"是,否".contains(info.getManagetype())) { message = "第" + i + "行中是否系统支撑选择错误,请按照模板选择"; return message; } } List datalist = new ArrayList(); int j = 0; // 开始校验信息类 for (TinfoclassDatameta data : info.getTinfoclassDatametaList()) { j = j + 1; if (data.getXxxmc() != null) { // 信息类名称 长度 if (data.getXxxmc().length() > 200) { message = "第" + i + "行的第" + (j) + "个信息项的信息项名称不能超过200字符"; return message; } // 是否主键 if (ToolUtil.isNull(data.getIsprimary())) { message = "第" + i + "行的第" + (j) + "个信息项的是否主键必填"; return message; } else if (!"是否".contains(data.getIsprimary())) { message = "第" + i + "行的第" + (j) + "个信息项的是否主键请按模板选择"; return message; } // 数据元编码 看是否存在对应数据元 if (ToolUtil.isNull(data.getGlsjy())) { data.setGlsjy("否"); } else { List metalist = datametaService.findTdataMetaByDatacode(data.getGlsjy()); if (metalist != null && metalist.size() > 0) { data.setGlsjy("是"); data.setDatametaid(metalist.get(0).getId()); data.setMetacodeid(metalist.get(0).getMetacodeid()); data.setMetacodeDis(metalist.get(0).getMetacodeDis()); data.setMetacode(metalist.get(0).getMetacode()); data.setDatatypeid(metalist.get(0).getDatatypeid()); data.setDatatypeDis(metalist.get(0).getDatatypeDis()); data.setDatatype(metalist.get(0).getDatatype()); data.setDatasize(metalist.get(0).getDatasize()); } else { message = "第" + i + "行的第" + (j) + "个信息项,未在已发布的数据元中找到相对应的数据元编码,请填写已发布数据元编码或者留空"; return message; } } if ("否".equals(data.getGlsjy())) { // 数据元名称 if (!ToolUtil.isNull(data.getMetaname()) && data.getMetaname().length() > 200) { message = "第" + i + "行的第" + (j) + "个信息项的数据元名称不超过200字符"; return message; } // 数据元类别 String metacodetype = ""; if (ToolUtil.isNull(data.getMetacode())) { message = "第" + i + "行的第" + (j) + "个信息项,数据元类别不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType("sjylb")) { if (code != null && code.getId() != null && data.getMetacode().split("-")[0].equals(code.getCodeValue())) { data.setMetacodeid(code.getId()); data.setMetacodeDis(code.getCodeName()); data.setMetacode(code.getCodeValue()); metacodetype = code.getCodeCode(); } } if (ToolUtil.isNull(data.getMetacodeid())) { message = "第" + i + "行的第" + (j) + "个信息项,数据元类别请按照模板选择"; return message; } } // 数据元类型 if (ToolUtil.isNull(data.getDatatype())) { message = "第" + i + "行的第" + (j) + "个信息项,数据元类型不能为空"; return message; } else { for (CodeDto code : dbdcCodeService.findCodeByCodeType(metacodetype)) { if (code != null && code.getId() != null && data.getDatatype().split("-")[0].equals(code.getCodeValue())) { data.setDatatypeid(code.getId()); data.setDatatypeDis(code.getCodeName()); data.setDatatype(code.getCodeValue()); } } if (ToolUtil.isNull(data.getDatatypeid())) { message = "第" + i + "行的第" + (j) + "个信息项,数据元类型与数据元类别不匹配"; return message; } } // 信息项数据长度 if (ToolUtil.isNull(data.getDatasize()) && !"sjylb_dwblx,sjylb_qtlx,sjylb_tpx,sjylb_rqx".contains(data.getMetacode())) { message = "第" + i + "行的第" + (j) + "个信息项,数据长度不能为空"; return message; } else if (data.getDatasize().length() > 200) { message = "第" + i + "行的第" + (j) + "个信息项,数据长度不超过200字符"; return message; } } // 信息项数据范围 // if (ToolUtil.isNull(data.getRanges())) { // message = "第" + i + "行的第" + (j) + "个信息项,数据范围不能为空"; // return message; // } else if (data.getRanges().length() > 200) { // message = "第" + i + "行的第" + (j) + "个信息项,数据范围不超过200字符"; // return message; // } // // 信息项共享类型 // if (ToolUtil.isNull(data.getSharetype())) { // message = "第" + i + "行的第" + (j) + "个信息项,共享类型必填"; // return message; // } else { // if ("123".contains(data.getSharetype().split("-")[0])) { // data.setSharetype( // data.getSharetype().split("-")[1]); // } else { // message = "第" + i + "行的第" + (j) // + "个信息项,共享类型选择错误,请按照模板选择"; // return message; // } // } // 代码集编码 if (!ToolUtil.isNull(data.getDescription())) { TcodeSetDto dto = tcodeSetService.byCodesetId(data.getDescription()); if (dto == null || ToolUtil.isNull(dto.getId())) { message = "第" + i + "行的第" + (j) + "个信息项,未在已发布的代码集中找到相对应的代码集编码,请填写已发布代码集编码或者留空"; return message; } TcodeSet tcodeSet = new TcodeSet(); BeanUtils.copyProperties(dto, tcodeSet); data.setDatametaCodeset(tcodeSet); } data.setDescription(""); data.setIndexnum(0); // // 信息项是否对外开放 // if (ToolUtil.isNull(data.getIsopensocial())) { // message = "第" + i + "行的第" + (j) + "个信息项,信息项开放类型必填"; // return message; // } else { // if (!"不予开放,有条件开放,无条件开放".contains(data.getIsopensocial())) { // // message = "第" + i + "行的第" + (j) // + "个信息项,信息项开放类型选择错误,请按照模板选择"; // return message; // } // } // // 信息共享条件 // if (!ToolUtil.isNull(data.getOpencondition()) // && data.getOpencondition().length() > 400) { // message = "第" + i + "行的第" + (j) + "个信息项,对外开放不超过400字符"; // return message; // } // // 信息项开放条件 // if (!ToolUtil.isNull(data.getShareconditions()) // && data.getShareconditions().length() > 400) { // message = "第" + i + "行的第" + (j) + "个信息项,共享条件不超过400字符"; // return message; // } // if (ToolUtil.isNull(data.getSharemodename())) { // message = "第" + i + "行的第" + (j) + "个信息项,共享方式不能为空"; // return message; // } else { // for (CodeDto code : dbdcCodeService // .findCodeByCodeType("gxfs")) { // if (code != null && code.getId() != null // && data.getSharemodename() // .equals(code.getCodeName())) { // data.setSharemode(code.getCodeCode()); // data.setSharemodeid(code.getId()); // } // } // if (ToolUtil.isNull(info.getSharemodeid())) { // message = "第" + i + "行的第" + (j) + "个信息项,共享方式请按模板选择"; // return message; // } // // } // // 信息项共享方式分类 // // 共享方式分类 // if (ToolUtil.isNull(info.getSharemodetypename())) { // message = "第" + i + "行中信息项共享方式类型不能为空"; // return message; // } else { // for (CodeDto code : dbdcCodeService // .findCodeByCodeType(info.getSharemode())) { // if (code != null && code.getId() != null // && info.getSharemodetypename() // .equals(code.getCodeName())) { // info.setSharemodetype(code.getCodeCode()); // info.setSharemodetypeid(code.getId()); // } // } // if (ToolUtil.isNull(info.getSharemodetypeid())) { // message = "第" + i + "行中信息项共享方式类型与信息项共享方式不匹配"; // return message; // } // } datalist.add(data); } } info.setTinfoclassDatametaList(datalist); } List datalist1 = new ArrayList(); List datalist2 = new ArrayList(); for (TinfoClass info : infolist) { if (map.containsKey(info.getInfoname())) { TinfoClass info2 = (TinfoClass) map.get(info.getInfoname()); datalist2 = info2.getTinfoclassDatametaList(); datalist1 = info.getTinfoclassDatametaList(); datalist2.addAll(datalist1); info2.setTinfoclassDatametaList(datalist2); map.put(info2.getInfoname(), info2); } else { map.put(info.getInfoname(), info); } } TinfoClass saveinfo = new TinfoClass(); for (Map.Entry entry : map.entrySet()) { saveinfo = entry.getValue(); saveinfo.setId(ToolUtil.getUUID()); saveinfo.setSourceid(saveinfo.getId()); saveinfo.setIszc("0"); tinfoClassService.saveTinfoClass(saveinfo); int indexnum = 0; List datalist = new ArrayList(); for (TinfoclassDatameta data : saveinfo.getTinfoclassDatametaList()) { if (!ToolUtil.isNull(data.getXxxmc())) { data.setId(ToolUtil.getUUID()); data.setIndexnum(indexnum++); data.setTinfoClass1(saveinfo); datalist.add(data); } } tinfoclassDatametaService.savetInfoclasList(datalist, saveinfo.getId()); } return message; } @RequestMapping("/subscribeInfo") @ResponseBody public Map subscribeInfo(String busId, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); String busIds[] = busId.split(","); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); for (String busIdTemp : busIds) { tinfoClassService.saveSubcriInfo(busIdTemp, userInfo); } map.put("remark", "success"); return map; } @RequestMapping("/sendMsg") @ResponseBody public Map sendMsg(String busId, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); tinfoClassService.generateMsgInfoByProvidebmcode(busId, userInfo); map.put("remark", "success"); return map; } @RequestMapping("/unsubscribeInfo") @ResponseBody public Map unsubscribeInfo(String busId, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); String busIds[] = busId.split(","); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); tinfoClassService.unSubcri(busId, userInfo); map.put("remark", "success"); return map; } /** * 获取资源分类的编码信息,用来判断是主题,基础,部门三个目录 * * @param infotypeid * @param request * @param response * @return */ @RequestMapping("/getinfotypecode") @ResponseBody public Map getinfotypecode(String infotypeid, HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); String precode = tinfoClassService.getPrecodeByInfoTypeid(infotypeid); map.put("remark", precode); return map; } @RequestMapping("/mysubscri") public String mysubscriList(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); loginfoService.logDealInfo("3", modelType, "信息类我的订阅:", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); return "thymeleaf/tinfoclass/mysubscrilist"; } @RequestMapping("/mysubscri_json") public Map mysubscriJson(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findMySubscriList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } @RequestMapping(value = "/infoclass_simHash") String infoclassSimHash(Model model, HttpServletRequest request, HttpServletResponse response, TcodeSetDto dto) throws InterruptedException, ExecutionException { // 翻页 String id = request.getParameter("id"); TinfoClassDto info = tinfoClassService.findTinfoClassById(id); Vector v1 = IKSegmenterUtil.participle(info.getInfoname()); long l3 = System.currentTimeMillis(); List infolist = new ArrayList<>(); infolist = doReadList(tinfoClassService.getAll(v1, id, info.getSourceid()), v1); long l4 = System.currentTimeMillis(); System.out.println(l4 - l3); model.addAttribute("list", infolist); return "thymeleaf/tinfoclass/infoclass_simHash"; } /** * 挂接实施 * @param model * @param dto * @param request * @param response * @return */ @RequestMapping("/tinfoclass_hitchImplement") public String tinfoclasshitchImplement(Model model, TinfoClassDto dto, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); model.addAttribute("userid", userInfo.getUserId()); String hasqingdan = "0"; for (Role role : userInfo.getRoles()) { if (qingdan_bzy.contains(role.getRoleId())) { hasqingdan = "1"; break; } } // 判断用户是否有清单编制员的角色 loginfoService.logDealInfo("3", modelType, "挂接实施列表", "t_infoclass", "", ToolUtil.getIpAddr(request), request.getRequestURI(), userInfo); model.addAttribute("hasqingdan", hasqingdan); return "thymeleaf/tinfoclass/tinfoclass_hitchImplementlist"; } @RequestMapping("/tinfoclass_hitchImplement_json") public Map tinfoclass_hitchImplement_json(HttpServletRequest request, @RequestParam(required = false) String queryParam, @RequestParam(required = false, defaultValue = "1") int page, @RequestParam(required = false, defaultValue = "5") int limit) { HttpSession session = request.getSession(); User userInfo = (User) session.getAttribute("user"); Map map = new HashMap<>(); TinfoClassDto dto = new TinfoClassDto(); if (!ToolUtil.isNull(queryParam)) {// 将json查询参数转为dto dto = JSONObject.parseObject(queryParam, TinfoClassDto.class); } String currentPageStr = page + ""; String pagesizes = limit + ""; if (pagesizes == null) { pagesizes = "10"; } int pagesize = Integer.parseInt(pagesizes); Pagination pageinfo = newPagination(currentPageStr, pagesize); pageinfo.setSortFiled(request.getParameter("field")); pageinfo.setSortType(request.getParameter("order")); pageinfo = tinfoClassService.findTinfoClassHitchImplementList(dto, pageinfo, userInfo); map.put("code", "0"); map.put("msg", "ok"); map.put("data", pageinfo.getPageResult()); map.put("count", pageinfo.getPageTotal()); return map; } /** * 挂接实施状态修改 * @param tinfoclssIds 信息类id * @param request * @param response * @return */ @RequestMapping("/tinfoclass_hitchImplement_check") @ResponseBody public Map tinfoclass_hitchImplement_check(String tinfoclssIds,HttpServletRequest request, HttpServletResponse response) { Map map = new HashMap(); User userInfo =(User) request.getSession().getAttribute("user"); //查询记录 List infoList= tinfoClassService.findListByIds(tinfoclssIds); //判断是否处于未实施状态且挂接审查处于通过状态 for (TinfoClass tinfoClass : infoList) { if(tinfoClass.getImplementationState() == null || !"1".equals(tinfoClass.getImplementationState())&& "2".equals(tinfoClass.getGjcheckstate())) { tinfoClass.setImplementationUserid(userInfo.getUserId()); tinfoClass.setImplementationData(ToolUtil.date2Str(new Date(), "yyyy-MM-dd HH:mm:ss")); tinfoClass.setImplementationState("1"); tinfoClassService.saveTinfoClass(tinfoClass); loginfoService.logDealInfo("2", modelType,"修改挂接实施状态", "t_infoclass", tinfoClass.getId(), ToolUtil.getIpAddr(request), request.getRequestURI(),userInfo); } } map.put("remark", "success"); return map; } public List doReadList(List list, Vector v1) throws InterruptedException, ExecutionException { /** 接收集合各段的 执行的返回结果 **/ List result = new ArrayList(); List>> futureList = new ArrayList>>(); /** 集合总条数 **/ int size = list.size(); /** 将集合切分的段数 **/ int sunSum = 20; int listStart, listEnd; /*** 当总条数不足10条时 用总条数 当做线程切分值 **/ if (sunSum > size) { sunSum = size; } /** 定义子线程 **/ SunCallable sunCallable; for (int i = 0; i < sunSum; i++) { /*** 计算切割 开始和结束 **/ listStart = size / sunSum * i; listEnd = size / sunSum * (i + 1); /** 最后一段线程会 出现与其他线程不等的情况 **/ if (i == sunSum - 1) { listEnd = size; } /** 线程切断 **/ List sunList = list.subList(listStart, listEnd); /** 子线程初始化 **/ sunCallable = new SunCallable(i, sunList, v1); /*** 多线程执行 ***/ futureList.add(threadPoolTaskExecutor.submit(sunCallable)); } for (Future> future : futureList) { if (null != future) { List info = future.get(); result.addAll(info); } else { } } return result; } /** * * @Description: 简要进行方法说明,并对基础数据类型的参数和返回值加以说明 * @param datasize * @param sql 查询sql * @param args 查询条件 * @param resulttype 1 表示单纯信息类 2.表示信息类加信息项 * @return List> * @throws @author mi * @date 2018年10月21日 */ public List> doReadDataByThread(int datasize, String sql, Object[] args, String resulttype) { /** 接收集合各段的 执行的返回结果 **/ List> result = new ArrayList>(); List>>> futureList = new ArrayList>>>(); /** 集合总条数 **/ int size = datasize; /** 将集合切分的段数 **/ int sunSum = 10; int listStart, listEnd; /*** 当总条数不足6000条时 用总条数 当做线程切分值 **/ if (sunSum > size || size < 10000) { sunSum = 1; } int per_num = (int) Math.ceil(size / sunSum); /** 定义子线程 **/ SunReadCallable sunCallable; for (int i = 0; i <= (sunSum == 1 ? 0 : sunSum); i++) { /*** 计算切割 开始和结束 **/ listStart = per_num * i; listEnd = per_num * (i + 1); if (listEnd > size) { listEnd = size; } /** 最后一段线程会 出现与其他线程不等的情况 **/ /** 线程切断 **/ Pagination> pag = newPagination("0", 1); /** 子线程初始化 **/ sunCallable = new SunReadCallable(sql, args, pag, listEnd, listStart, resulttype); /*** 多线程执行 ***/ futureList.add(threadPoolTaskExecutor.submit(sunCallable)); } for (Future>> future : futureList) { if (null != future) { List> info; try { info = future.get(); result.addAll(info); } catch (InterruptedException | ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return result; } }