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

563 lines
19 KiB
Java
Raw Normal View History

2023-11-07 09:32:12 +08:00
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;
2023-12-18 16:58:08 +08:00
import com.alibaba.fastjson.JSON;
import com.zcloud.aspect.DockAnnotation;
2023-11-07 09:32:12 +08:00
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
2023-12-18 16:58:08 +08:00
@DockAnnotation(isAdd = true)
2023-11-07 09:32:12 +08:00
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);
2023-12-18 16:58:08 +08:00
map.put("dockData", JSON.toJSONString(pd));
2023-11-07 09:32:12 +08:00
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
2023-12-18 16:58:08 +08:00
@DockAnnotation
2023-11-07 09:32:12 +08:00
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); //返回结果
return map;
}
/**
* @param
* @throws Exception
*/
@RequestMapping(value="/edit")
@RequiresPermissions("riskunit:edit")
@ResponseBody
2023-12-18 16:58:08 +08:00
@DockAnnotation
2023-11-07 09:32:12 +08:00
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);
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
2023-12-18 16:58:08 +08:00
@DockAnnotation
2023-11-07 09:32:12 +08:00
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;
}
}