qa-prevention-gwj/src/main/java/com/zcloud/controller/bus/RiskUnitController.java

565 lines
19 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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<String,Object> map = new HashMap<String,Object>();
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<PageData> 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<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
// //获取部门下拉树
// List<PageData> zdepartmentPdList = new ArrayList<PageData>();
// 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<PageData> zdepartmentPdList = new ArrayList<PageData>();
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<String,String> map = new HashMap<String,String>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
List<PageData> 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); //返回结果
map.put("dockData",JSON.toJSONString(pd));
return map;
}
/**修改
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
@RequiresPermissions("riskunit:edit")
@ResponseBody
@DockAnnotation
public Object edit() throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CHECK_NAME", pd.getString("NAME"));
List<PageData> 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);
map.put("dockData","对接接口");
return map;
}
/**列表
* @param page
* @throws Exception
*/
@RequestMapping(value="/list")
@RequiresPermissions("riskunit:list")
@ResponseBody
public Object list(Page page) throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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<PageData> 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<String,Object> map = new HashMap<String,Object>();
String errInfo = "success";
PageData pd = new PageData();
pd = this.getPageData();
pd = riskunitService.findById(pd); //根据ID读取
//获取部门下拉树
// List<PageData> zdepartmentPdList = new ArrayList<PageData>();
// 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<PageData> zdepartmentPdList = new ArrayList<PageData>();
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<String,Object> map = new HashMap<String,Object>();
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<PageData> 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<String,Object> dataMap = new HashMap<String,Object>();
List<String> titles = new ArrayList<String>();
titles.add("所属企业"); //1
titles.add("风险点(单元)名称"); //2
titles.add("所属部门"); //3
dataMap.put("titles", titles);
List<PageData> varOList = riskunitService.listAll(pd);
List<PageData> varList = new ArrayList<PageData>();
for(int i=0;i<varOList.size();i++){
PageData vpd = new PageData();
vpd.put("var1", varOList.get(i).getString("CORP_NAME")); //1
vpd.put("var2", varOList.get(i).getString("RISKUNITNAME")); //2
vpd.put("var3", varOList.get(i).getString("DEPT_NAME")); //6
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv,dataMap);
return mv;
}
/**导出某一个选中项到excel
* @param
* @throws Exception
*/
@RequestMapping(value="/excelAll")
// @RequiresPermissions("toExcel")
public ModelAndView excelAll() throws Exception{
ModelAndView mv = new ModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
String ArrayDATA_IDS[] = pd.getString("ids").split(",");
Map<String,Object> dataMap = new HashMap<String,Object>();
List<String> titles = new ArrayList<String>();
titles.add("所属企业"); //1
titles.add("风险点(单元)名称"); //2
titles.add("所属部门"); //3
dataMap.put("titles", titles);
pd.put("ArrayDATA_IDS",ArrayDATA_IDS);
List<PageData> varOList = riskunitService.listonly(pd);
List<PageData> varList = new ArrayList<PageData>();
for(int i=0;i<varOList.size();i++){
PageData vpd = new PageData();
vpd.put("var1", varOList.get(i).getString("CORP_NAME")); //1
vpd.put("var2", varOList.get(i).getString("RISKUNITNAME")); //2
vpd.put("var3", varOList.get(i).getString("DEPT_NAME")); //6
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv,dataMap);
return mv;
}
/**列表
* @param page
* @throws Exception
*/
@RequestMapping(value="/getRisByUnitId")
@RequiresPermissions("riskunit:list")
@ResponseBody
public Object getRisByUnitId(Page page) throws Exception{
Map<String,Object> map = new HashMap<String,Object>();
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<PageData> 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<String, String> map = new HashMap<String, String>();
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<PageData> 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<PageData> riskunitList = new ArrayList<>();
PageData pdCorpId = new PageData();
pdCorpId.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
pdCorpId.put("ISDELETE", "0");
List<PageData> departAll = departmentService.listAll(pdCorpId);
Map<String, Object> departMapAll = new HashMap<>();
for (PageData pageData : departAll) {
departMapAll.put(Tools.excelHandle(pageData.getString("NAME")), pageData);
}
List<PageData> riskunitListAll = riskunitService.listAll(pdCorpId);
Map<String, Object> riskunitMapAll = new HashMap<>();
for (PageData pageData : riskunitListAll) {
riskunitMapAll.put(pageData.getString("DEPARTMENT_ID") + Tools.excelHandle(pageData.getString("RISKUNITNAME")),
pageData);
}
List<String> header = new ArrayList<>();
header.add("所属部门");
header.add("风险点(单元)");
Map<String, Object> 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<String, Object> 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<PageData> list = riskunitService.listAll(risk);
if(list.size()>0) {
errInfo = "fail";
}
map.put("result", errInfo); //返回结果
map.put("count", list.size());
return map;
}
}