diff --git a/src/main/java/com/zcloud/config/ShiroConfiguration.java b/src/main/java/com/zcloud/config/ShiroConfiguration.java index 629d6292..3adc0306 100644 --- a/src/main/java/com/zcloud/config/ShiroConfiguration.java +++ b/src/main/java/com/zcloud/config/ShiroConfiguration.java @@ -81,6 +81,7 @@ public class ShiroConfiguration { filterChainMap.put("/openApi/**/**", "anon"); filterChainMap.put("/Api**/**", "anon"); filterChainMap.put("/api/**/**", "anon"); + filterChainMap.put("/getStatisticsData/**","anon"); filterChainMap.put("/**", "authc"); factoryBean.setFilterChainDefinitionMap(filterChainMap); } diff --git a/src/main/java/com/zcloud/controller/app/AppSystemController.java b/src/main/java/com/zcloud/controller/app/AppSystemController.java index 08e26ec9..3e0cdfb9 100644 --- a/src/main/java/com/zcloud/controller/app/AppSystemController.java +++ b/src/main/java/com/zcloud/controller/app/AppSystemController.java @@ -65,7 +65,7 @@ public class AppSystemController extends BaseController { depar.setSubDepartment(this.departmentService.listAllDepartment(depar.getDEPARTMENT_ID(),url)); depar.setTarget("treeFrame"); depar.setIcon("../../../assets/images/user.gif"); - zdepartmentPdList.add(depar); + zdepartmentPdList.addAll(depar.getSubDepartment()); // zdepartmentPdList.addAll(departmentService.listAllDepartment(ZDEPARTMENT_ID)); JSONArray arr = JSONArray.fromObject(zdepartmentPdList); String json = arr.toString(); diff --git a/src/main/java/com/zcloud/controller/bus/ImgFilesController.java b/src/main/java/com/zcloud/controller/bus/ImgFilesController.java index 65dcb6b2..6d450f5b 100644 --- a/src/main/java/com/zcloud/controller/bus/ImgFilesController.java +++ b/src/main/java/com/zcloud/controller/bus/ImgFilesController.java @@ -85,7 +85,38 @@ public class ImgFilesController extends BaseController { ) throws Exception{ Map map = new HashMap(); System.out.println("+++++++++++++++"+files); +// System.out.println("==================="+temporaryFilePath); String errInfo = "success"; +// if (temporaryFilePath != null && temporaryFilePath.length > 0) { +// for (int i = 0; i < temporaryFilePath.length; i++) { +// String suffixName = temporaryFilePath[i].substring(temporaryFilePath[i].lastIndexOf(".")+1).toLowerCase(); +// if (!"json".equals(suffixName) && !"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) { +// errInfo = "fail"; +// map.put("result", errInfo); +// map.put("msg", "文件格式不正确!"); +// return map; +// } +// if(TYPE.equals("2")) {//先删除原四色图 +// PageData pd2 = new PageData(); +// pd2.put("FOREIGN_KEY",FOREIGN_KEY); +// pd2.put("TYPE",TYPE); +// List four = imgfilesService.listAll(pd2); +// for (PageData pageData : four) { +// File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH")); +// old.delete(); +// imgfilesService.delete(pageData); +// } +// } +// +//// String productPath = FileUploadUtil.copyTemporaryFileToProduct(temporaryFilePath[i]); +// PageData pd = new PageData(); +// pd.put("IMGFILES_ID", this.get32UUID()); +// pd.put("FILEPATH", temporaryFilePath[i]); +// pd.put("TYPE", TYPE); +// pd.put("FOREIGN_KEY", FOREIGN_KEY); +// imgfilesService.save(pd); +// } +// } if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase(); @@ -135,7 +166,6 @@ public class ImgFilesController extends BaseController { imgfilesService.save(pd); } } - map.put("result", errInfo); return map; } diff --git a/src/main/java/com/zcloud/controller/filemanager/MfolderController.java b/src/main/java/com/zcloud/controller/filemanager/MfolderController.java index 0d7c1be6..16974118 100644 --- a/src/main/java/com/zcloud/controller/filemanager/MfolderController.java +++ b/src/main/java/com/zcloud/controller/filemanager/MfolderController.java @@ -1,8 +1,13 @@ package com.zcloud.controller.filemanager; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.ObjectUtil; +import com.zcloud.service.bus.ImgFilesService; +import com.zcloud.util.*; import net.sf.json.JSONArray; import java.io.Console; +import java.io.File; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -10,6 +15,7 @@ import java.util.Map; import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.crypto.hash.SimpleHash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; @@ -22,16 +28,6 @@ import com.zcloud.controller.base.BaseController; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.service.filemanager.MfolderService; -import com.zcloud.util.Const; -import com.zcloud.util.DateUtil; -import com.zcloud.util.DelFileUtil; -import com.zcloud.util.FileDownload; -import com.zcloud.util.FileUpload; -import com.zcloud.util.FileUtil; -import com.zcloud.util.Jurisdiction; -import com.zcloud.util.PathUtil; -import com.zcloud.util.Smb; -import com.zcloud.util.Tools; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -50,6 +46,9 @@ public class MfolderController extends BaseController { @Autowired private MfolderService mfolderService; + @Autowired + private ImgFilesService imgfilesService; + /**创建目录 * @param * @throws Exception @@ -87,7 +86,8 @@ public class MfolderController extends BaseController { @RequestParam(value="NAME",required=false) String NAME, @RequestParam(value="PARENT_ID",required=false) String PARENT_ID, @RequestParam(value="REMARKS",required=false) String REMARKS, - @RequestParam(value="SHARE",required=false) String SHARE + @RequestParam(value="SHARE",required=false) String SHARE, + @RequestParam(value = "DOCUMENTNUMBER",required = false) String DOCUMENTNUMBER ) throws Exception{ Map map = new HashMap(); String errInfo = "success"; @@ -117,6 +117,7 @@ public class MfolderController extends BaseController { pd.put("SHARE", SHARE); //是否共享 pd.put("MFOLDER_ID", this.get32UUID()); //主键 pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业 + pd.put("DOCUMENTNUMBER",DOCUMENTNUMBER); //文号 mfolderService.save(pd); //存入数据库表 }else{ errInfo = "fail"; @@ -139,7 +140,8 @@ public class MfolderController extends BaseController { @RequestParam(value = "NAME", required = false) String NAME, @RequestParam(value = "PARENT_ID", required = false) String PARENT_ID, @RequestParam(value = "REMARKS", required = false) String REMARKS, - @RequestParam(value = "SHARE", required = false) String SHARE) throws Exception { + @RequestParam(value = "SHARE", required = false) String SHARE, + @RequestParam(value = "DOCUMENTNUMBER",required = false) String DOCUMENTNUMBER) throws Exception { Map map = new HashMap(); String errInfo = "success"; PageData pd = new PageData(); @@ -181,6 +183,7 @@ public class MfolderController extends BaseController { pd.put("SHARE", SHARE); // 是否共享 pd.put("MFOLDER_ID", this.get32UUID()); // 主键 pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); // 企业 + pd.put("DOCUMENTNUMBER",DOCUMENTNUMBER); //文号 mfolderService.save(pd); // 存入数据库表 } else { errInfo = "fail"; @@ -296,7 +299,9 @@ public class MfolderController extends BaseController { String errInfo = "success"; PageData pd = new PageData(); pd = this.getPageData(); - pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业 + if (!Const.ONE.equals(pd.getString("CORPINFO_ID"))){ + pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID()); //企业 + } String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); String MFOLDER_ID = null; @@ -390,6 +395,33 @@ public class MfolderController extends BaseController { return map; } + /** + * 显示列表ztree + * @return + */ + @RequestMapping(value="/getSupervisionTree") + @ResponseBody + public Object getSupervisionTree()throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + this.initialize(); + pd = this.getPageData(); + String SHARE = pd.getString("SHARE"); + if(!(Tools.notEmpty(SHARE) && "yes".equals(SHARE))) { + pd.put("USERNAME", "admin".equals(Jurisdiction.getUsername())?"":Jurisdiction.getUsername()); //除admin用户外,只能查看自己的数据 + } + pd.put("parentId", "0"); + pd.put("SHARE", SHARE); + pd.put("CORPINFO_ID", "1"); //企业 + JSONArray arr = JSONArray.fromObject(mfolderService.listTree(pd,SHARE)); + String json = arr.toString(); + json = json.replaceAll("MFOLDER_ID", "id").replaceAll("PARENT_ID", "pId").replaceAll("NAME", "name").replaceAll("subMfolder", "nodes").replaceAll("hasMfolder", "checked").replaceAll("treeurl", "url"); + map.put("zTreeNodes", json); + map.put("result", errInfo); + return map; + } + /**预览txt,java,php,等文本文件 * @return */ diff --git a/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java b/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java new file mode 100644 index 00000000..5d046d49 --- /dev/null +++ b/src/main/java/com/zcloud/controller/statisticsdata/StatisticsDataController.java @@ -0,0 +1,955 @@ +package com.zcloud.controller.statisticsdata; + +import com.zcloud.controller.base.BaseController; +import com.zcloud.entity.Page; +import com.zcloud.entity.PageData; +import com.zcloud.entity.system.Dictionaries; +import com.zcloud.service.bus.*; +import com.zcloud.service.highriskwork.HighWorkService; +import com.zcloud.service.majordangersource.MajordangersourceDisposalService; +import com.zcloud.service.system.*; +import com.zcloud.util.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Controller +@RequestMapping("/getStatisticsData") +public class StatisticsDataController extends BaseController { + + private final static String CORPINFO_ID = "21590a00ea5e462e9ee44dd332dddc26"; + private final static String USER_ID = "48a8ca9815814c979814ddcf041c5cd5"; + private final static String USER_NAME = "秦港股份九公司"; + private final static String DEPT_ID = "21590a00ea5e462e9ee44dd332dddc26"; + + @Autowired + private RiskPointService riskpointService; + @Autowired + private UsersService usersService; + @Autowired + private DepartmentService departmentService; + @Autowired + private ListManagerService listmanagerService; + @Autowired + private HiddenService hiddenService; + @Autowired + private CardUserService cardUserService; + @Autowired + private MajordangersourceDisposalService majordangersourceDisposalService; + @Autowired + private HighWorkService highworkService; + @Autowired + private DictionariesService dictionariesService; + @Autowired + private VideoService videoService; + @Autowired + private MajordangersourceDisposalService majordangersourcedisposalService; + @Autowired + private PhotoService photoService; + @Autowired + private FhsmsService fhsmsService; + @Autowired + private RoleService roleService; + @Autowired + private PostService postService; + @Autowired + private CheckRecordService checkrecordService; + @Autowired + private ListStatisticsService listStatisticsService; + @Autowired + private IdentificationPartsService identificationPartsService; + @Autowired + private RiskUnitService riskUnitService; + @Autowired + private NoticeCorpService noticecorpService; + @Autowired + private ServiceNoticeService noticeService; + + /** + * 可视化首页统计数据 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findFormCount") + @ResponseBody + public Object findFormCount() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + /*风险管控 数据统计*/ + PageData risk = riskpointService.statisticsRiskCount(pd); + map.put("risk", risk); + + /* 隐患排查数据统计 */ + Map corp = new HashMap<>(); + //部门 + List userCount = usersService.statisticsByCorp(pd); + corp.put("USERCOUNT", userCount.get(0).get("COUNT")); //人员总数 + corp.put("USERCHECKCOUNT", userCount.get(1).get("COUNT")); //人员总数 + //部门 + List deptCount = departmentService.statisticsByCorp(pd); + corp.put("DEPTCOUNT", deptCount.get(0).get("COUNT")); //人员总数 + corp.put("DEPTCHECKCOUNT", deptCount.get(1).get("COUNT")); //人员总数 + //清单 + List listCount = listmanagerService.statisticsByCorp(pd); //列出ListManager列表 + corp.put("LISTCOUNT", listCount.get(0).get("COUNT")); //人员总数 + corp.put("LISTCHECKCOUNT", listCount.get(1).get("COUNT")); //人员总数 + map.put("corp", corp); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 清单类型占比统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findListTypeChartData") + @ResponseBody + public Object findListTypeChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID",CORPINFO_ID); + + //清单类型占比统计 + List chartData = listmanagerService.statisticsGroupType(pd); + map.put("chartData", chartData); + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 隐患整改趋势 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findHdRecTrendChartData") + @ResponseBody + public Object findHdRecTrendChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"已发现", "待确认", "已确认", "待验收", "已验收", "延期处置"}); + chartData.put("legendData", legendData); + List halfYearMonth = DateUtil.getHalfYearMonth(true); + chartData.put("xAxisData", halfYearMonth); + + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pd = new PageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + pd.put("STATENAME",legendData.get(i)); + List data = new ArrayList(); + List hdRecChart = hiddenService.statisticsGroupMonthByState(pd); //根据状态按时间分组统计隐患数据 + for (int j = 0; j < halfYearMonth.size(); j++) { + boolean flag = true; + for (int k = 0; k < hdRecChart.size(); k++) { + if (halfYearMonth.get(j).equals(hdRecChart.get(k).getString("CREATMONTH"))) { + flag = false; + data.add(hdRecChart.get(k).get("COUNT")); + break; + } + } + if (flag) { + data.add(0); + } + } + seriesData.add(data); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + + /** + * 可视化首页 风险程度统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findRiskPointChartData") + @ResponseBody + public Object findRiskPointChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + Map chartData = new HashMap(); + List deptList = riskpointService.listDeptByPoint(pd); + List yAxisData = new ArrayList(); + for(PageData d :deptList){ + PageData pdf = new PageData(); + yAxisData.add(d.getString("DEPT_NAME")); + } + chartData.put("yAxisData", yAxisData); + + List varList = dictionariesService.listSubDictByParentId("5a81e63ec0e94d919b3138bc01dbef6b"); + List legendData = new ArrayList(); + List seriesData = new ArrayList(); + for(Dictionaries d :varList){ + PageData pdf = new PageData(); + legendData.add(d.getNAME()); + seriesData.add(new ArrayList()); + } + chartData.put("legendData", legendData); + //隐患整改趋势(近半年) + for (int i = 0; i < deptList.size(); i++) { + PageData dept = new PageData(); + dept.put("DEPARTMENT_ID",deptList.get(i).getString("DEPARTMENT_ID")); + List dataChart = riskpointService.statisticsGroupLevelByDept(dept); //按照级别分类统计各部门风险管控数据 + for (int j = 0; j < varList.size(); j++) { + List secondList = (List) seriesData.get(j); + secondList.add(i, dataChart.get(j).getString("COUNT")); + } + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 本月人员进出 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findCarUserChartData") + @ResponseBody + public Object findCarUserChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + //隐患整改趋势(近半年) + Map chartData = new HashMap(); +// List legendData = Arrays.asList(new String[]{"进入人员", "外出人员", "刷卡率"}); + List legendData = Arrays.asList(new String[]{"进入人员", "外出人员"}); + chartData.put("legendData", legendData); + List thisMonth = DateUtil.getThisMonth(false); // 本月日期 + chartData.put("xAxisData", thisMonth); + + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pd = new PageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + pd.put("STATENAME", legendData.get(i)); + List data = new ArrayList(); + List hdRecChart = cardUserService.statisticsGroupDay(pd); //根据状态按时间分组统计人员进出刷卡 + for (int j = 0; j < thisMonth.size(); j++) { + boolean flag = true; + for (int k = 0; k < hdRecChart.size(); k++) { + if (thisMonth.get(j).equals(hdRecChart.get(k).getString("CREATDAY"))) { + flag = false; + data.add(hdRecChart.get(k).get("COUNT")); + break; + } + } + if (flag) { + data.add(0); + } + } + seriesData.add(data); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 报警处置情况 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findAlarmDisposalChartData") + @ResponseBody + public Object findAlarmDisposalChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"报警数", "已处置", "处置中"}); + chartData.put("legendData", legendData); + List xAxisData = new ArrayList(); + List seriesData1 = new ArrayList(); + List seriesData2 = new ArrayList(); + List seriesData3 = new ArrayList(); + + List disposalChart = majordangersourceDisposalService.statisticsGroupMajordangersource(pd); //根据重大危险源分组统计报警处置情况 + List seriesData = new ArrayList(); + for (PageData data : disposalChart) { + xAxisData.add(data.getString("MAJORDANGERSOURCE_NAME")); + seriesData1.add(data.get("COUNTALARM")); + seriesData2.add(data.get("COUNTDISPOSED")); + seriesData3.add(data.get("COUNTDISPOSAL")); + } + chartData.put("xAxisData", xAxisData); + seriesData.add(seriesData1); + seriesData.add(seriesData2); + seriesData.add(seriesData3); + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /** + * 可视化首页 作业类型统计分析 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/findHighRiskWorkChartData") + @ResponseBody + public Object findHighRiskWorkChartData() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + //隐患整改趋势(近半年) + Map chartData = new HashMap(); + List legendData = Arrays.asList(new String[]{"动火作业", "临时用电作业", "盲板作业", "高处作业", "有限空间作业", "吊装作业"}); + + List workChart = highworkService.statisticsAllHighRiskWork(pd); //统计高危作业里各作业数 + List seriesData = new ArrayList(); + for (int i = 0; i < legendData.size(); i++) { + PageData pie = new PageData(); + pie.put("name", legendData.get(i)); + pie.put("value", workChart.get(i).get("COUNT")); + seriesData.add(pie); + } + chartData.put("seriesData", seriesData); + map.put("chartData", chartData); + + map.put("result", errInfo); + return map; + } + + /**数据可视化平台首页获取 + * 1.获取企业的置顶视频 + * 2.获取管理的置顶视频 + * 3.没有视频或者没有置顶视频 + * @param + * @throws Exception + */ + @RequestMapping(value="/getObjectForBiLogin") + @ResponseBody + public Object getObjectForBiLogin() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd.put("TYPE", "1"); + pd.put("CORPINFO_TYPE", "1"); + pd.put("CORPINFO_ID", CORPINFO_ID); + List cpvarList = videoService.listAll(pd); //企业视频 + pd = new PageData(); + pd.put("CORPINFO_TYPE", "2"); + pd.put("TYPE", "1"); + List ptVarList = videoService.listAll(pd); //平台视频 + + map.put("ptVarList", ptVarList); + map.put("cpvarList", cpvarList); + map.put("result", errInfo); + return map; + } + + /**获取重大危险源数据 + * @param + * @throws Exception + */ + @RequestMapping(value="/findValidateData") + @ResponseBody + public Object findValidateData() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + List varList = majordangersourcedisposalService.listAll(pd); //根据ID读取 + map.put("varList", varList); + map.put("result", errInfo); + return map; + } + + + /** + * 清单检查完成率统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/goIndexCount") + @ResponseBody + public Object goIndexCount() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); // 企业 + String STARTTIME = pd.getString("STARTTIME"); // 关键词检索条件 + if (Tools.notEmpty(STARTTIME)) + pd.put("STARTTIME", STARTTIME.trim() + " 00:00:00"); + String ENDTIME = pd.getString("ENDTIME"); // 关键词检索条件 + if (Tools.notEmpty(ENDTIME)) + pd.put("ENDTIME", ENDTIME.trim() + " 23:59:59"); + + List varList = new ArrayList(); + PageData listType0001 = new PageData(); + PageData listType0002 = new PageData(); + PageData listType0003 = new PageData(); + PageData listType0004 = new PageData(); + PageData listType0005 = new PageData(); + PageData all = new PageData(); + + Map varMap = new HashMap(); + + listType0001.put("type", "listType0001"); + listType0001.put("name", "日常"); + listType0001.put("molecule", 0); + listType0001.put("denominator", 0); + listType0001.put("percentage", 0d); + listType0002.put("type", "listType0002"); + listType0002.put("name", "综合"); + listType0002.put("molecule", 0); + listType0002.put("denominator", 0); + listType0002.put("percentage", 0d); + + listType0003.put("type", "listType0003"); + listType0003.put("name", "专业"); + listType0003.put("molecule", 0); + listType0003.put("denominator", 0); + listType0003.put("percentage", 0d); + + listType0004.put("type", "listType0004"); + listType0004.put("name", "季节性"); + listType0004.put("molecule", 0); + listType0004.put("denominator", 0); + listType0004.put("percentage", 0d); + + listType0005.put("type", "listType0005"); + listType0005.put("name", "节假日"); + listType0005.put("molecule", 0); + listType0005.put("denominator", 0); + listType0005.put("percentage", 0d); + + all.put("type", "all"); + all.put("name", "合计"); + all.put("molecule", 0); + all.put("denominator", 0); + all.put("percentage", 0d); + + varMap.put("listType0001", listType0001); + varMap.put("listType0002", listType0002); + varMap.put("listType0003", listType0003); + varMap.put("listType0004", listType0004); + varMap.put("listType0005", listType0005); + varMap.put("all", all); + + List countList = listStatisticsService.getCountList(pd);// 统计分母 + + if (countList != null && countList.size() > 0) { + List dayList = checkrecordService.listCountDay(pd); // 统计--日 + if (dayList != null && dayList.size() > 0) { + for (PageData count : dayList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List weekList = checkrecordService.listCountWeek(pd); // 统计--周 + if (weekList != null && weekList.size() > 0) { + for (PageData count : weekList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List monthList = checkrecordService.listCountMonth(pd); // 统计--月 + + if (monthList != null && monthList.size() > 0) { + for (PageData count : monthList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List quarterList = checkrecordService.listCountQuarter(pd); // 统计--季 + + if (quarterList != null && quarterList.size() > 0) { + for (PageData count : quarterList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List halfYearList = checkrecordService.listCountHalfYear(pd); // 统计--半年 + + if (halfYearList != null && halfYearList.size() > 0) { + for (PageData count : halfYearList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + List yearList = checkrecordService.listCountYear(pd); // 统计--年 + if (yearList != null && yearList.size() > 0) { + for (PageData count : yearList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + // 处理旬时间 + StringBuffer stt = new StringBuffer(); + stt.append(pd.getString("STARTTIME")); + stt.setCharAt(9, '1'); + pd.put("STARTTIME", stt.toString()); + + String endDay = ENDTIME.substring(8, 10); + Integer endTime = Integer.parseInt(endDay); + StringBuffer et = new StringBuffer(); + et.append(pd.getString("ENDTIME")); + + if (endTime <= 10) { + stt.setCharAt(8, '1'); + stt.setCharAt(9, '0'); + pd.put("ENDTIME", et.toString()); + } else if (endTime <= 20) { + stt.setCharAt(8, '2'); + stt.setCharAt(9, '0'); + pd.put("ENDTIME", et.toString()); + } else { + Integer endMonth = Integer.parseInt(ENDTIME.substring(5, 7)); + Integer endYear = Integer.parseInt(ENDTIME.substring(0, 4)); + pd.put("ENDTIME", getLastDayOfMonth(endYear, endMonth) + " 23:59:59"); + } + List tenDaysList = checkrecordService.listCountTenDays(pd); // 统计--旬 + if (tenDaysList != null && tenDaysList.size() > 0) { + for (PageData count : tenDaysList) { + Integer molecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("molecule").toString()); + varMap.get(count.get("TYPE")).put("molecule", molecule); + + Integer allMolecule = Integer.parseInt(count.get("NUM").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + } + } + // 分母 + for (PageData count : countList) { + Integer denominator = Integer.parseInt(count.get("NOTEXAMINEDNUM").toString()) + + Integer.parseInt(varMap.get(count.get("TYPE")).get("denominator").toString()); + varMap.get(count.get("TYPE")).put("denominator", denominator); + + Integer allDenominator = Integer.parseInt(count.get("NOTEXAMINEDNUM").toString()) + + Integer.parseInt(varMap.get("all").get("denominator").toString()); + varMap.get("all").put("denominator", allDenominator); + } + } + for (int i = 1; i < 5; i++) { + String type = "listType000" + i; + if (!varMap.get(type).get("denominator").toString().equals("0")) { + if (varMap.get(type).get("molecule").toString().equals("0")) { + varMap.get(type).put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get(type).get("denominator").toString()); + Double molecule = Double.parseDouble(varMap.get(type).get("molecule").toString()); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get(type).put("percentage", df.format(percentage)); + } + + } + varList.add(varMap.get(type)); + } + if (!varMap.get("listType0005").get("denominator").toString().equals("0")) { + Integer jjr = checkrecordService.listCountJjr(pd) == null ? 0 : checkrecordService.listCountJjr(pd); + if (jjr == 0) { + varMap.get("listType0005").put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get("listType0005").get("denominator").toString()); + Double molecule = Double.valueOf(jjr); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get("listType0005").put("percentage", df.format(percentage)); + } + } + Integer allMolecule = Integer.parseInt(varMap.get("listType0005").get("molecule").toString()) + + Integer.parseInt(varMap.get("all").get("molecule").toString()); + varMap.get("all").put("molecule", allMolecule); + varList.add(varMap.get("listType0005")); + if (!varMap.get("all").get("denominator").toString().equals("0")) { + if (varMap.get("all").get("molecule").toString().equals("0")) { + varMap.get("all").put("percentage", 0d); + } else { + Double denominator = Double.parseDouble(varMap.get("all").get("denominator").toString()); + Double molecule = Double.parseDouble(varMap.get("all").get("molecule").toString()); + Double percentage = molecule / denominator * 100; + DecimalFormat df = new DecimalFormat("#.00"); + varMap.get("all").put("percentage", df.format(percentage)); + } + } + varList.add(varMap.get("all")); + map.put("varList", varList); + map.put("varMap", varMap); + map.put("result", errInfo); + return map; + } + + public static String getLastDayOfMonth(int year, int month) { + Calendar cal = Calendar.getInstance(); + // 设置年份 + cal.set(Calendar.YEAR, year); + // 设置月份 + cal.set(Calendar.MONTH, month - 1); + // 获取某月最大天数 + int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); + // 设置日历中月份的最大天数 + cal.set(Calendar.DAY_OF_MONTH, lastDay); + // 格式化日期 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String lastDayOfMonth = sdf.format(cal.getTime()); + + return lastDayOfMonth; + } + + /**首页 获取折线图 + * @param + * @throws Exception + */ + @RequestMapping(value="/listmanagerIndexCount") + @ResponseBody + public Object listmanagerIndexCount() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); //企业 + List valList = listmanagerService.goIndexCount(pd); + List valList1 = new ArrayList(); + + //杨明图标数据 +// {months: "2022-06", count: 0, screenType: "riskChecklistType0001"} +// 6 * 3 近6個月 ,3 三种类型 + + Map monSCrMap = new HashMap<>(); + for (PageData pageData : valList){ + String key = pageData.getString("months")+"*"+pageData.getString("screenType"); + monSCrMap.put(key,pageData.getString("count")); + } + + + List halfYearMonth = DateUtil.getHalfYearMonth(true); + String [] typeAll = new String[]{"riskChecklistType0001","riskChecklistType0002","zhqd03"}; + + + List> list = new ArrayList<>(); // 整理完成的数据 size 6 * 3 + for(String month : halfYearMonth){ + for (String type : typeAll){ + String count = "0"; + + String key = month +"*" + type; + if (monSCrMap.containsKey(key)){ + count = monSCrMap.get(key); + } + Map monAndType = new HashMap<>(); + monAndType.put("months",month); + monAndType.put("screenType",type); + monAndType.put("count",count); + list.add(monAndType); + } + } + + System.out.println(list); + map.put("xAxisData", halfYearMonth); + map.put("valList", list); + map.put("result", errInfo); + return map; + } + + /** + * 隐患数量统计 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/getCountByUserId") + @ResponseBody + public Object getCountByUserId(Page page) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + Map hidCount = new HashMap<>(); + + pd.put("userId", USER_ID); // 发现人 + Integer dzg = 0;// 待整改 1 + Integer ycq = 0;// 已超期 5 + Integer dfc = 0;// 待复查 2 + Integer yys = 0;// 已验收 4 + // STATE -- 隐患状态 0-未提交 1- 未整改 2-已整改 3-已复查 4-已验收 5-已过期 + if (Tools.notEmpty(pd.get("userId").toString())) { + pd.put("SELFUSERID", USER_ID); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List rectifiHid = hiddenService.getCountByRectifiCationorId(pd); // 根据人员id获取整改隐患信息 state 1 5 + for (int i = 0; i < rectifiHid.size(); i++) { + PageData rec = rectifiHid.get(i); + if (null == rec.get("STATE")) { + continue; + } + if (rec.get("STATE").equals("1") || rec.get("STATE").equals("-1")) { + dzg++; + } + } + List creatorHid = hiddenService.getCountByCreatorId(pd); // 根据人员id获取发现隐患信息 + for (int i = 0; i < creatorHid.size(); i++) { + PageData cre = creatorHid.get(i); + if (null == cre.get("STATE")) { + continue; + } + if (cre.get("STATE").equals("2")) { + dfc++; + } + if (cre.get("STATE").equals("4")) { + yys++; + } + if (cre.get("STATE").equals("-1")) { + ycq++; + } + } + } + hidCount.put("dzg", dzg); + hidCount.put("ycq", ycq); + hidCount.put("dfc", dfc); + hidCount.put("yys", yys); + + map.put("hidCount", hidCount); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + /** + * 风险点统计 + * + * @param + * @throws Exception + */ + @RequestMapping(value = "/statistic") + @ResponseBody + public Object statistic() throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List riskAll = riskpointService.statisticsAll(pd); + List idAll = identificationPartsService.listIndexAll(pd); + List unitAll = riskUnitService.listIndexAll(pd); + Integer idcount = 0; + Integer unitcount = 0; + Integer cnzfx = 0; + if (idAll != null && idAll.size() > 0) { + idcount = idAll.size(); + } + if (unitAll != null && unitAll.size() > 0) { + unitcount = unitAll.size(); + } + for (int i = 0; riskAll.size() > i; i++) { + if (riskAll.get(i).get("LEVELID") != null && Tools.notEmpty(riskAll.get(i).get("LEVELID").toString())) { + if ("levelA".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelB".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelC".equals(riskAll.get(i).get("LEVELID").toString()) + || "levelD".equals(riskAll.get(i).get("LEVELID").toString())) { + cnzfx += Integer.valueOf(riskAll.get(i).get("COUNT").toString()); + } + } + } + + Map riskCount = new HashMap<>(); + + riskCount.put("idcount", idcount); + riskCount.put("unitcount", unitcount); + riskCount.put("cnzfx", cnzfx); + // 风险点-只按名称统计 辨识部位-统计不同单元内的辨识部位名称的总数 + + map.put("riskCount", riskCount); + map.put("riskAll", riskAll); + map.put("idAll", idAll); + map.put("unitAll", unitAll); + map.put("result", errInfo); + return map; + } + + + /** + * 隐患类型数量统计 + * + * @param page + * @throws Exception + */ + @RequestMapping(value = "/getCountByHiddenType") + @ResponseBody + public Object getCountByHiddenType(Page page) throws Exception { + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); + + List dicIdsList = dictionariesService.getIdsByRecuByParentId("3babc15144444bdc8d763d0af2bdfff6"); + int anl = 0; + int hbl = 0; + String anlIDs = dicIdsList.get(0).getString("ids"); + String hblIDs = dicIdsList.get(1).getString("ids"); + List hiddList = hiddenService.getCountByHiddenType(pd); + for (PageData pageData : hiddList) { + String hiddenType = pageData.getString("DICTIONARIES_ID"); + if (anlIDs.indexOf(hiddenType) != -1) { + anl += Integer.parseInt(pageData.getString("count")); + } + if (hblIDs.indexOf(hiddenType) != -1) { + hbl += Integer.parseInt(pageData.getString("count")); + } + } + + List valList = new ArrayList(); + Map valMap = new HashMap<>(); + valMap.put("name", "安全隐患"); + valMap.put("value", anl); + valList.add(valMap); + valMap = new HashMap<>(); + valMap.put("name", "卫生环保"); + valMap.put("value", hbl); + + valList.add(valMap); + map.put("hiddenTypeCount", valList); + map.put("result", errInfo); + return map; + } + + /**平台公告 + * @param page + * @throws Exception + */ + @RequestMapping(value="/listByIndex") + @ResponseBody + public Object listByIndex(Page page) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + //获取发布给这个企业的信息 + pd.put("CORP_INFO_ID", CORPINFO_ID); + page.setPd(pd); + List varList = noticeService.getNotAndCorpByCorpId(page); + + map.put("varList", varList); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + /**企业公告 + * @param page + * @throws Exception + */ + @RequestMapping(value="/enterpriseListByIndex") + @ResponseBody + public Object enterpriseListByIndex(Page page) throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = this.getPageData(); + String KEYWORDS = pd.getString("KEYWORDS"); //关键词检索条件 + if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim()); + pd.put("USER_ID", USER_ID); + page.setPd(pd); + List varList = noticecorpService.listByIndex(page); //列出NOTICECORP列表 + map.put("varList", varList); + map.put("page", page); + map.put("result", errInfo); + return map; + } + + + /**清單列表 + * @param + * @throws Exception + */ + @RequestMapping(value="/checkListIndex") + @ResponseBody + public Object checkListIndex() throws Exception{ + Map map = new HashMap(); + String errInfo = "success"; + PageData pd = new PageData(); + pd = this.getPageData(); + pd.put("CORPINFO_ID", CORPINFO_ID); //企业 + pd.put("USER_ID",USER_ID); + pd.put("DEPARTMENT_ID", DEPT_ID); + + pd.put("USER_ID",""); + List varList = listmanagerService.listAll(pd); //列出ListManager列表 + int wjcNum = 0; + int yjcNum = 0; + for (PageData list : varList) { + if(list.getString("TYPE").equals("listType0005")) { + if(Integer.parseInt(list.get("checkCount").toString()) > 0) { + yjcNum++; + } else { + wjcNum++; + } + continue; + } + if(Integer.parseInt(list.get("checkCount").toString()) > 0) { + yjcNum++; + } else { + wjcNum++; + } + } + map.put("yjcNum", yjcNum); + map.put("wjcNum", wjcNum); + map.put("varList", varList); + map.put("result", errInfo); + return map; + } + + +} diff --git a/src/main/java/com/zcloud/mapper/datasource/firemanager/FireRecordMapper.java b/src/main/java/com/zcloud/mapper/datasource/firemanager/FireRecordMapper.java index abf8fc57..e1de0696 100644 --- a/src/main/java/com/zcloud/mapper/datasource/firemanager/FireRecordMapper.java +++ b/src/main/java/com/zcloud/mapper/datasource/firemanager/FireRecordMapper.java @@ -122,5 +122,4 @@ public interface FireRecordMapper { PageData getPhotoUploadMethod(PageData pageData); - List datalistPageV3(Page page); } diff --git a/src/main/java/com/zcloud/service/firemanager/FireRecordService.java b/src/main/java/com/zcloud/service/firemanager/FireRecordService.java index e10279e6..982a1b70 100644 --- a/src/main/java/com/zcloud/service/firemanager/FireRecordService.java +++ b/src/main/java/com/zcloud/service/firemanager/FireRecordService.java @@ -142,6 +142,4 @@ public interface FireRecordService { void doRemoveRecordPointHiddenByCidRidDid(PageData checkInfo); PageData getPhotoUploadMethod(PageData pageData); - - List getCheckListByAppV3(Page page); } diff --git a/src/main/java/com/zcloud/service/firemanager/impl/FireRecordServiceImpl.java b/src/main/java/com/zcloud/service/firemanager/impl/FireRecordServiceImpl.java index 3c7fbdcc..cf278764 100644 --- a/src/main/java/com/zcloud/service/firemanager/impl/FireRecordServiceImpl.java +++ b/src/main/java/com/zcloud/service/firemanager/impl/FireRecordServiceImpl.java @@ -800,8 +800,4 @@ public class FireRecordServiceImpl implements FireRecordService { return fireRecordMapper.getPhotoUploadMethod(pageData); } - @Override - public List getCheckListByAppV3(Page page) { - return fireRecordMapper.datalistPageV3(page); - } } diff --git a/src/main/java/com/zcloud/util/ClearFilesJob.java b/src/main/java/com/zcloud/util/ClearFilesJob.java new file mode 100644 index 00000000..7a7b0ef0 --- /dev/null +++ b/src/main/java/com/zcloud/util/ClearFilesJob.java @@ -0,0 +1,70 @@ +package com.zcloud.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.Scheduled; + +import java.io.File; +import java.util.Date; + +/** + * 定时清除临时文件任务 + * 每月30日定时清除 /uploadFiles/linshi/ 路径下所有文件 + * @date 2024-9-10 + * @author hyx + */ +@Configuration +public class ClearFilesJob { + + private final static Logger log = LoggerFactory.getLogger(ClearFilesJob.class); + +// @Scheduled(cron ="0 0 0 30 * ?") + @Scheduled(cron = "0 0 0 * * ?") + public void scheduled(){ + log.info("==========清除临时文件定时任务开启=========="); + System.out.println("==========清除临时文件定时任务开启=========="); +// String filePath = Const.PATH_PREFIX + Const.TEMPORARY_FILE_PATH; + String filePath = "D:/file/test/linshi/"; + String beforeDayDate = DateUtil.getBeforeDayDate(); + System.out.println("要清除的文件夹:"+ filePath + beforeDayDate); + delAllFile(filePath + beforeDayDate); + } + + /** + * 删除文件夹下所有文件 + * @param path 目标路径 + * @return + */ + public static boolean delAllFile(String path) { + boolean flag = false; + File file = new File(path); + if (!file.exists()) { + return flag; + } + if (!file.isDirectory()) { + return flag; + } + String[] tempList = file.list(); + File temp = null; + for (int i = 0; i < tempList.length; i++) { + if (path.endsWith(File.separator)) { + temp = new File(path + tempList[i]); + } else { + temp = new File(path + File.separator + tempList[i]); + } + if (temp.isFile()) { + temp.delete(); + } + if (temp.isDirectory()) { + //删除文件夹下文件 + delAllFile(path + "/" + tempList[i]); + flag = true; + } + } + return flag; + } + + +} + diff --git a/src/main/java/com/zcloud/util/Const.java b/src/main/java/com/zcloud/util/Const.java index 145ae510..727074ae 100644 --- a/src/main/java/com/zcloud/util/Const.java +++ b/src/main/java/com/zcloud/util/Const.java @@ -24,7 +24,7 @@ public class Const { public static final String SYSNAME = "sysName"; //系统名称 public static final String SHOWCOUNT = "showCount"; //每页条数 - public static final String basePath = "/mnt/vdc1/qask/file/"; + public static final String basePath = "/mnt/qask/file/"; public static final String FILEPATHFILE = "/uploadFiles/file/"; //文件上传路径 public static final String FILEPATHHEADPHONE = "/uploadFiles/headPhone/"; //用户头像 public static final String BIFILEPATHFILE = "/uploadFiles/Bfile/"; //文件上传路径 @@ -46,9 +46,9 @@ public class Const { public static final String IS_MAIN = "IS_MAIN"; //是否主账号 public static final String ISSUPERVISE = "ISSUPERVISE"; //是否监管部门 public static final String DEFAULT_PASSWORD = "Aa@123456789"; //系统默认密码 - public static final String FILEURL = "/mnt/vdc1/qask/file/"; //文件服务器地址 + public static final String FILEURL = "/mnt/qask/file/"; //文件服务器地址 public static final String HTTPFILEURL = "https://skqhdg.porthebei.com:9004/file/"; //文件服务器地址 - // public static final String HTTPFILEURL = "https://qgqy.qhdsafety.com/file/"; +// public static final String HTTPFILEURL = "https://qgqy.qhdsafety.com/file/"; public final static String APPID = "wx9199de454d31b016"; public final static String SECRET = "183cdcac380e1f98f00c793491e27d88"; public static final String XCX_MCH_ID = "1607757714"; @@ -63,4 +63,9 @@ public class Const { public static final String USER_CITY_CODE = "SESSION_USER_CITY_CODE"; public static final String USER_CITY_NAME = "SESSION_USER_CITY_NAME"; + + public final static String TEMPORARY_FILE_PATH = "/uploadFiles/linshi/"; // 临时文件路径 + public final static String PRODUCT_FILE_PATH = "/uploadFiles/yhtp/"; //正式文件路径 + public final static String PATH_PREFIX = "/mnt/vdc1/qask/file"; //服务器路径前缀 + public static final String ONE = "1"; } diff --git a/src/main/java/com/zcloud/util/DateUtil.java b/src/main/java/com/zcloud/util/DateUtil.java index 6b2dcda6..69b0285e 100644 --- a/src/main/java/com/zcloud/util/DateUtil.java +++ b/src/main/java/com/zcloud/util/DateUtil.java @@ -195,6 +195,20 @@ public class DateUtil { return dateStr; } + /** + * 获取30天之前的日期字符串 + * @return yyyyMMdd格式时间字符串 + */ + public static String getBeforeDayDate() { + Calendar canlendar = Calendar.getInstance(); + canlendar.setTime(new Date()); + canlendar.add(Calendar.DATE, -30); + Date date = canlendar.getTime(); + SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMMdd"); + String dateStr = sdfd.format(date); + return dateStr; + } + /** * 得到n天之后是周几 * @param days diff --git a/src/main/java/com/zcloud/util/FileUploadUtil.java b/src/main/java/com/zcloud/util/FileUploadUtil.java new file mode 100644 index 00000000..c96e4e65 --- /dev/null +++ b/src/main/java/com/zcloud/util/FileUploadUtil.java @@ -0,0 +1,90 @@ +package com.zcloud.util; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IORuntimeException; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; + +/** + * 文件上传工具类 + * 变更文件上传方式,原上传方式可能会导致附件丢失 + * 修改后逻辑:点击上传 -> 调后端接口返回临时文件路径 -> 提交-> 临时文件拷贝到正式,保存正式文件地址 -> 定期清空临时文件 + * @date 2024-9-10 + * @author hyx + * @version V1.0 + */ +public class FileUploadUtil { + + private final static String PATH_PREFIX = "/mnt/vdc1/qask/file"; //服务器路径前缀 + private final static String TEMPORARY_FILE_PATH = "/uploadFiles/linshi/"; //临时文件储存路径 + private final static String PRODUCT_FILE_PATH = "/uploadFiles/zhengshi/"; //正式文件储存路径 +// private final static String PATH_PREFIX = "D:/file"; //服务器路径前缀 +// private final static String TEMPORARY_FILE_PATH = "/test/linshi/"; //临时文件储存路径 +// private final static String PRODUCT_FILE_PATH = "/test/zhengshi/"; //正式文件储存路径 + + /** + * 上传文件到服务器临时地址 + * + * @param file 文件 + * @param CORPINFO_ID 企业id + * @return 文件临时路径 + * @throws Exception + * @date 2024-9-10 + * @author hyx + */ + public static String uploadTemporaryFile(MultipartFile file,String CORPINFO_ID) throws Exception { + String ffile = DateUtil.getDays(); + String fileName = UuidUtil.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + try { + Smb.sshSftp(file,fileName,TEMPORARY_FILE_PATH + ffile + "/" + CORPINFO_ID); + } catch (Exception e) { + throw new RuntimeException(e); + } + return TEMPORARY_FILE_PATH + ffile + "/" + CORPINFO_ID + "/" + fileName; + } + + /** + * 临时文件拷贝到正式 + * + * @param temporaryFilePath 临时文件路径 + * @param CORPINFO_ID 企业id + * @return 不含路径前缀的正式文件路径 + * @throws Exception + * @date 2024-9-10 + * @author hyx + */ + public static String copyTemporaryFileToProduct(String temporaryFilePath,String CORPINFO_ID) throws Exception { + //临时文件在服务器的完整路径 + String completeTemporaryPath = PATH_PREFIX + temporaryFilePath; + //截取文件名 + String fileName = completeTemporaryPath.substring(completeTemporaryPath.lastIndexOf("/")).replace("/",""); + //正式文件完整路径 + String completeProductPath = PATH_PREFIX + PRODUCT_FILE_PATH + CORPINFO_ID + "/" ; + //临时文件拷贝到正式路径 + try { + FileUtil.copy(completeTemporaryPath,completeProductPath,false); + } catch (IORuntimeException e) { + throw new RuntimeException(e); + } + return PRODUCT_FILE_PATH + CORPINFO_ID + "/" + fileName; + } + + public static String copyTemporaryFileToProduct(String temporaryFilePath) throws Exception { + //临时文件在服务器的完整路径 + String completeTemporaryPath = PATH_PREFIX + temporaryFilePath; + //截取文件名 + String fileName = completeTemporaryPath.substring(completeTemporaryPath.lastIndexOf("/")).replace("/",""); + //正式文件完整路径 + String completeProductPath = PATH_PREFIX + PRODUCT_FILE_PATH + "/" ; + //临时文件拷贝到正式路径 + try { + FileUtil.copy(completeTemporaryPath,completeProductPath,false); + } catch (IORuntimeException e) { + throw new RuntimeException(e); + } + return PRODUCT_FILE_PATH + "/" + fileName; + } + + +} diff --git a/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml b/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml index 98b1f378..35b58d38 100644 --- a/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml +++ b/src/main/resources/mybatis/datasource/bus/CheckRecordMapper.xml @@ -192,7 +192,7 @@ f.TYPE, f.PERIODSTART DATESTART, f.PERIODEND DATEEND, - u.NAME AS USER_NAME, + getUnameByUid(u.USER_ID) AS USER_NAME, su.NAME AS PRINCIPALNAME, (select group_concat(chr.NAME) from BUS_CHECKUSER bh left join sys_user chr on chr.USER_ID=bh.USER_ID where bh.CHECKRECORD_ID=f.CHECKRECORD_ID) CHECK_USERS from diff --git a/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml b/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml index ab860678..274a6ac4 100644 --- a/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml +++ b/src/main/resources/mybatis/datasource/bus/ListManagerMapper.xml @@ -192,7 +192,7 @@ sp.NAME AS POST_NAME, s.NAME AS SCREENTYPENAME, - u.NAME AS USER_NAME + getUnameByUid(f.USER_ID) AS USER_NAME from f @@ -220,7 +220,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, s.NAME AS SCREENTYPENAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE = '0') as count , @@ -271,7 +271,7 @@ and f.DEPARTMENT_ID = #{pd.DEPARTMENT_ID} - and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') + and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') and f.TYPE = #{pd.TYPE} @@ -500,7 +500,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as count, @@ -593,7 +593,7 @@ d.NAME as DEPARTMENT_NAME, sp.NAME AS POST_NAME, - u.NAME USER_NAME, + getUnameByUid(f.USER_ID) USER_NAME, (select count(1) from BUS_LIST_CHECKITEM ch where ch.LISTMANAGER_ID=f.LISTMANAGER_ID and ch.ISDELETE =0) as count, ve.numCount checkCount from @@ -649,7 +649,7 @@ and f.DEPARTMENT_ID = #{pd.DTID} - and u.NAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') + and getUnameByUid(f.USER_ID) LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%') and f.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%') diff --git a/src/main/resources/mybatis/datasource/system/MfolderMapper.xml b/src/main/resources/mybatis/datasource/system/MfolderMapper.xml index f2bef523..e8e28920 100644 --- a/src/main/resources/mybatis/datasource/system/MfolderMapper.xml +++ b/src/main/resources/mybatis/datasource/system/MfolderMapper.xml @@ -6,65 +6,68 @@ - + OA_MFOLDER - + SYS_DICTIONARIES - + - f.FILEPATH, - f.CTIME, - f.UNAME, - f.MASTER, - f.FILESIZE, - f.SHARE, - f.REMARKS, + f.FILEPATH, + f.CTIME, + f.UNAME, + f.MASTER, + f.FILESIZE, + f.SHARE, + f.REMARKS, f.MFOLDER_ID, f.PARENT_ID, f.NAME, - f.CORPINFO_ID + f.CORPINFO_ID, + f.DOCUMENTNUMBER - + - FILEPATH, - CTIME, - UNAME, - MASTER, - FILESIZE, - SHARE, - REMARKS, + FILEPATH, + CTIME, + UNAME, + MASTER, + FILESIZE, + SHARE, + REMARKS, MFOLDER_ID, PARENT_ID, NAME, - CORPINFO_ID + CORPINFO_ID, + DOCUMENTNUMBER - + - #{FILEPATH}, - #{CTIME}, - #{UNAME}, - #{MASTER}, - #{FILESIZE}, - #{SHARE}, - #{REMARKS}, + #{FILEPATH}, + #{CTIME}, + #{UNAME}, + #{MASTER}, + #{FILESIZE}, + #{SHARE}, + #{REMARKS}, #{MFOLDER_ID}, #{PARENT_ID}, #{NAME}, - #{CORPINFO_ID} + #{CORPINFO_ID}, + #{DOCUMENTNUMBER} - + - insert into + insert into ( @@ -72,43 +75,43 @@ ) - + delete from - where + where MFOLDER_ID = #{MFOLDER_ID} - + update - set + set SHARE = #{SHARE}, REMARKS = #{REMARKS}, NAME = #{NAME}, MFOLDER_ID = MFOLDER_ID - where + where MFOLDER_ID = #{MFOLDER_ID} - + - + - select + select - from + from f - where - f.PARENT_ID = #{parentId} + where + f.PARENT_ID = #{parentId} @@ -153,43 +156,43 @@ and f.SHARE = 'yes' --> order by FIELD(f.NAME ,'成立组织机构文件','"双控"机制相关文件','风险分布图','风险告知卡','风险分级管控清单(台账)', - '隐患治理信息台账','应急预案','其他') + '隐患治理信息台账','应急预案','其他') - + update - set + set SHARE = #{SHARE} - where + where MFOLDER_ID in #{item} - + - - + + - + - \ No newline at end of file +