package com.zcloud.controller.bus; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.zcloud.aspect.DockAnnotation; import com.zcloud.entity.system.User; import org.apache.shiro.session.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import org.apache.shiro.authz.annotation.RequiresPermissions; import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.util.Const; import com.zcloud.util.DateUtil; import com.zcloud.util.FileDownload; import com.zcloud.util.FileUpload; import com.zcloud.util.Jurisdiction; import com.zcloud.util.ObjectExcelRead; import com.zcloud.util.ObjectExcelView; import com.zcloud.util.PathUtil; import com.zcloud.util.Smb; import com.zcloud.util.Tools; import net.sf.json.JSONArray; import com.zcloud.entity.PageData; import com.zcloud.service.bus.IdentificationPartsService; import com.zcloud.service.bus.RiskUnitService; import com.zcloud.service.system.DepartmentService; /** * 说明:风险单元 * 作者:luoxiaobao * 时间:2020-12-30 * 官网:www.zcloudchina.com */ @Controller @RequestMapping("/riskunit") public class RiskUnitController extends BaseController { @Autowired private RiskUnitService riskunitService; @Autowired private DepartmentService departmentService; @Autowired private IdentificationPartsService identificationpartsService; /**新增 * @param * @throws Exception */ @RequestMapping(value="/add") @RequiresPermissions("riskunit:add") @ResponseBody @DockAnnotation(isAdd = true) public Object add() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); pd.put("CHECK_NAME", pd.getString("RISKUNITNAME")); //pd.put("DEPARTMENT_ID",Jurisdiction.getDEPARTMENT_ID()); List list = riskunitService.listAll(pd); if(list!=null&&list.size()>0) { map.put("result", "failed"); map.put("exception", "风险点(单元)已存在,请修改后重试"); return map; } pd.put("RISKUNIT_ID", this.get32UUID()); //主键 pd.put("CREATOR", Jurisdiction.getUsername()); //添加人 pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间 pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 pd.put("ISDELETE", "0"); //是否删除 1-是 0-否 riskunitService.save(pd); map.put("result", errInfo); map.put("dockData", JSON.toJSONString(pd)); return map; } /**去修改页面获取数据 * @param * @throws Exception */ @RequestMapping(value="/goAdd") @ResponseBody public Object goAdd() throws Exception{ Map map = new HashMap(); String errInfo = "success"; // //获取部门下拉树 // List zdepartmentPdList = new ArrayList(); // String ZDEPARTMENT_ID = Jurisdiction.getDEPARTMENT_ID(); // ZDEPARTMENT_ID = "".equals(ZDEPARTMENT_ID)?"0":ZDEPARTMENT_ID; // PageData dept = new PageData(); // dept.put("DEPARTMENT_ID",ZDEPARTMENT_ID); // dept=this.departmentService.findById(dept); //获取部门下拉树 List zdepartmentPdList = new ArrayList(); PageData dept = new PageData(); dept.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); dept=this.departmentService.findByCorpId(dept); String ZDEPARTMENT_ID = dept.getString("DEPARTMENT_ID"); PageData node = new PageData(); node.put("id", dept.get("DEPARTMENT_ID")); node.put("parentId", dept.get("PARENT_ID")); node.put("name", dept.get("NAME")); node.put("icon", "../../../assets/images/user.gif"); zdepartmentPdList.add(node); JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartmentToSelect(ZDEPARTMENT_ID,zdepartmentPdList)); map.put("zTreeNodes", (null == arr ?"":"{\"treeNodes\":" + arr.toString() + "}")); map.put("result", errInfo); return map; } /**删除 * @param out * @throws Exception */ @RequestMapping(value="/delete") @RequiresPermissions("riskunit:del") @ResponseBody @DockAnnotation public Object delete() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); List list = identificationpartsService.listAll(pd); if(list!=null && list.size()>0) { map.put("result", "fail"); //返回结果 return map; } pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 riskunitService.delete(pd); map.put("result", errInfo); //返回结果 return map; } /**修改 * @param * @throws Exception */ @RequestMapping(value="/edit") @RequiresPermissions("riskunit:edit") @ResponseBody @DockAnnotation public Object edit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CHECK_NAME", pd.getString("NAME")); List list = riskunitService.listAll(pd); if(list!=null&&list.size()>0 && !list.get(0).getString("RISKUNIT_ID").equals(pd.getString("RISKUNIT_ID"))) { map.put("result", "failed"); map.put("msg", "风险点(单元)已存在,请修改后重试"); return map; } pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 riskunitService.edit(pd); map.put("result", errInfo); return map; } /**列表 * @param page * @throws Exception */ @RequestMapping(value="/list") @RequiresPermissions("riskunit:list") @ResponseBody public Object list(Page page) throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); Session session = Jurisdiction.getSession(); User loginUser = (User)session.getAttribute(Const.SESSION_USER); if(null != loginUser){ pd.put("supDeparIds",loginUser.getSuperviseDepartId()); pd.put("roleLevel",loginUser.getRoleLevel()); pd.put("loginUserId",loginUser.getUSER_ID()); } page.setPd(pd); List varList = riskunitService.list(page); //列出RiskUnit列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /**去修改页面获取数据 * @param * @throws Exception */ @RequestMapping(value="/goEdit") @RequiresPermissions("riskunit:edit") @ResponseBody public Object goEdit() throws Exception{ Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd = riskunitService.findById(pd); //根据ID读取 //获取部门下拉树 // List zdepartmentPdList = new ArrayList(); // String ZDEPARTMENT_ID = Jurisdiction.getDEPARTMENT_ID(); // ZDEPARTMENT_ID = "".equals(ZDEPARTMENT_ID)?"0":ZDEPARTMENT_ID; // PageData dept = new PageData(); // dept.put("DEPARTMENT_ID",ZDEPARTMENT_ID); // dept=this.departmentService.findById(dept); //获取部门下拉树 List zdepartmentPdList = new ArrayList(); PageData dept = new PageData(); dept.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); dept=this.departmentService.findByCorpId(dept); String ZDEPARTMENT_ID = dept.getString("DEPARTMENT_ID"); PageData node = new PageData(); node.put("id", dept.get("DEPARTMENT_ID")); node.put("parentId", dept.get("PARENT_ID")); node.put("name", dept.get("NAME")); node.put("icon", "../../../assets/images/user.gif"); zdepartmentPdList.add(node); JSONArray arr = JSONArray.fromObject(departmentService.listAllDepartmentToSelect(ZDEPARTMENT_ID,zdepartmentPdList)); map.put("zTreeNodes", (null == arr ?"":"{\"treeNodes\":" + arr.toString() + "}")); map.put("pd", pd); map.put("result", errInfo); return map; } /**批量删除 * @param * @throws Exception */ @RequestMapping(value="/deleteAll") @RequiresPermissions("riskunit:del") @ResponseBody @DockAnnotation public Object deleteAll() throws Exception{ Map map = new HashMap(); String errInfo = "success"; String err=""; PageData pd = new PageData(); pd = this.getPageData(); String DATA_IDS = pd.getString("DATA_IDS"); if(Tools.notEmpty(DATA_IDS)){ String ArrayDATA_IDS[] = DATA_IDS.split(","); for (String id : ArrayDATA_IDS) { PageData unit = new PageData(); unit.put("RISKUNIT_ID", id); List list = identificationpartsService.listAll(unit); if(list!=null && list.size()>0) { continue; } pd.put("RISKUNIT_ID", id); pd.put("OPERATOR", Jurisdiction.getUsername()); //修改人 pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间 riskunitService.delete(pd); } // riskunitService.deleteAll(ArrayDATA_IDS); errInfo = "success"; }else{ errInfo = "fail"; } map.put("result", errInfo); //返回结果 return map; } /**导出全部到excel * @param * @throws Exception */ @RequestMapping(value="/excel") @RequiresPermissions("toExcel") public ModelAndView exportExcel() throws Exception{ ModelAndView mv = new ModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("所属企业"); //1 titles.add("风险点(单元)名称"); //2 titles.add("所属部门"); //3 dataMap.put("titles", titles); List varOList = riskunitService.listAll(pd); List varList = new ArrayList(); for(int i=0;i dataMap = new HashMap(); List titles = new ArrayList(); titles.add("所属企业"); //1 titles.add("风险点(单元)名称"); //2 titles.add("所属部门"); //3 dataMap.put("titles", titles); pd.put("ArrayDATA_IDS",ArrayDATA_IDS); List varOList = riskunitService.listonly(pd); List varList = new ArrayList(); for(int i=0;i map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); pd.put("RISK_UNIT_ID", pd.getString("RISK_UNIT_ID")); page.setPd(pd); List varList = riskunitService.getRisByUnitId(page); //列出RiskUnit列表 map.put("varList", varList); map.put("page", page); map.put("result", errInfo); return map; } /**导出到excel * @param * @throws Exception */ @RequestMapping(value="/excelModel") @RequiresPermissions("toExcel") public void exportExcelModel(HttpServletResponse response) throws Exception{ FileDownload.fileDownload(response, PathUtil.getProjectpath() + Const.FILEPATHFILE + "riskunitExcelTemplate.xls", "riskunitExcelTemplate.xls"); } /**从EXCEL导入到数据库 * @param file * @return * @throws Exception */ @RequestMapping(value = "/readExcel") @RequiresPermissions("fromExcel") @SuppressWarnings("unchecked") @ResponseBody @Transactional public Object readExcel(@RequestParam(value = "FFILE", required = false) MultipartFile file) throws Exception { Map map = new HashMap(); String errInfo = "success"; String type = "warning"; StringBuffer errorStr = new StringBuffer(); if (null != file && !file.isEmpty()) { String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); if (!"xls".equals(suffixName)) { errInfo = "fail"; type = "error"; map.put("result", errInfo); map.put("msg", "文件格式不正确!"); map.put("type", type); return map; } String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + "riskunit/"; String fileName = FileUpload.fileUp(file, filePath, this.get32UUID());// 执行上传 // String ffile = "riskunit"+DateUtil.getDays()+"/"; // String filePath = Const.FILEURL + Const.FILEPATHFILE + ffile; // String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); // Smb.sshSftp(file, fileName,Const.FILEPATHFILE + ffile); List listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 1, 0, 0); // 执行读EXCEL操作,读出的数据导入List // 2:从第3行开始;0:从第A列开始;0:第0个sheet /** * var0 :风险点(单元) var1 :所属部门 */ try { if (listPd.size() < 1) { errInfo = "fail"; map.put("result", errInfo); map.put("msg", "Excel数据为空,请检查数据后,重新上传!"); map.put("type", type); File old = new File(filePath, fileName); old.delete(); return map; } List riskunitList = new ArrayList<>(); PageData pdCorpId = new PageData(); pdCorpId.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); pdCorpId.put("ISDELETE", "0"); List departAll = departmentService.listAll(pdCorpId); Map departMapAll = new HashMap<>(); for (PageData pageData : departAll) { departMapAll.put(Tools.excelHandle(pageData.getString("NAME")), pageData); } List riskunitListAll = riskunitService.listAll(pdCorpId); Map riskunitMapAll = new HashMap<>(); for (PageData pageData : riskunitListAll) { riskunitMapAll.put(pageData.getString("DEPARTMENT_ID") + Tools.excelHandle(pageData.getString("RISKUNITNAME")), pageData); } List header = new ArrayList<>(); header.add("所属部门"); header.add("风险点(单元)"); Map hasRiskUnit = new HashMap<>(); int succeeNum = 1; for (PageData lpd : listPd) { succeeNum++; for (int i = 0; i < header.size(); i++) { if (!lpd.containsKey("var" + i)) { errorStr.append("第" + succeeNum + "行的\"" + header.get(i) + "\"无数据;\n"); continue; } if (Tools.isEmpty(lpd.get("var" + i))) { errorStr.append("第" + succeeNum + "行的\"" + header.get(i) + "\"无数据;\n"); continue; } } String departVar = Tools.isEmpty(lpd.get("var0")) ? "" : Tools.excelHandle(lpd.get("var0")); String riskNameVar = Tools.isEmpty(lpd.get("var1")) ? "" : Tools.excelHandle(lpd.get("var1")); if (!departMapAll.containsKey(departVar)) { errorStr.append( "第" + succeeNum + "行:" + "未找到名称为\"" + departVar + "\"的" + header.get(0) + ";\n"); continue; } PageData depart = (PageData) departMapAll.get(departVar); if (riskunitMapAll.containsKey(depart.getString("DEPARTMENT_ID") + riskNameVar)) { errorStr.append("第" + succeeNum + "行:" + "在" + departVar + "部门下已经存在名称为\"" + riskNameVar + "\"的" + header.get(1) + ";\n"); continue; } if (hasRiskUnit.containsKey(departVar + riskNameVar)) { errorStr.append("第" + succeeNum + "行:" + "数据重复,请重新检查内容!" + ";\n"); continue; } hasRiskUnit.put(departVar + riskNameVar, "1"); PageData riskunit = new PageData(); riskunit.put("DEPARTMENT_ID", depart.getString("DEPARTMENT_ID")); riskunit.put("RISKUNITNAME", lpd.get("var1")); riskunit.put("RISKUNIT_ID", this.get32UUID()); riskunit.put("ISDELETE", "0"); riskunit.put("CREATOR", Jurisdiction.getUsername()); riskunit.put("CREATTIME", DateUtil.date2Str(new Date())); riskunit.put("OPERATOR", Jurisdiction.getUsername()); riskunit.put("OPERATTIME", DateUtil.date2Str(new Date())); riskunit.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); riskunitList.add(riskunit); } if (Tools.isEmpty(errorStr.toString())) { for (PageData riskunit : riskunitList) { riskunitService.save(riskunit); } errorStr.append("成功导入" + riskunitList.size() + "条数据!"); type = "success"; } else { errInfo = "fail"; } File old = new File(filePath, fileName); old.delete(); } catch (Exception e) { map.put("result", "fail"); // 返回结果 map.put("resultStr", errorStr.toString()); map.put("type", type); File old = new File(filePath, fileName); old.delete(); return map; } } map.put("result", errInfo); // 返回结果 map.put("msg", errorStr.toString()); //返回结果 map.put("type", type); //返回结果 map.put("isExcel", "1"); //返回类型 map.put("resultStr", errorStr.toString()); return map; } /**判断同一个部门下,风险点(单元)名字 是否重复 * @param * @throws Exception */ @RequestMapping(value="/hasName") @ResponseBody public Object hasName() throws Exception{ Map map = new HashMap<>(); PageData pd = new PageData(); pd = this.getPageData(); String errInfo = "success"; PageData risk = new PageData(); risk.put("DEPARTMENT_ID", pd.getString("DEPARTMENT_ID")); risk.put("CHECK_NAME",pd.getString("CHECK_NAME")); List list = riskunitService.listAll(risk); if(list.size()>0) { errInfo = "fail"; } map.put("result", errInfo); //返回结果 map.put("count", list.size()); return map; } }