From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Service/ServiceImpl/HiddenDangerReportServiceImpl.java | 464 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 464 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/HiddenDangerReportServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/HiddenDangerReportServiceImpl.java
new file mode 100644
index 0000000..55d5f62
--- /dev/null
+++ b/src/main/java/com/gk/firework/Service/ServiceImpl/HiddenDangerReportServiceImpl.java
@@ -0,0 +1,464 @@
+package com.gk.firework.Service.ServiceImpl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gk.firework.Domain.Enterprise;
+import com.gk.firework.Domain.Enum.HiddenDangerReportStatus;
+import com.gk.firework.Domain.Exception.BusinessException;
+import com.gk.firework.Domain.HiddenDangerReport;
+import com.gk.firework.Domain.HiddenDangerReportDetail;
+import com.gk.firework.Domain.UserInfo;
+import com.gk.firework.Domain.Utils.FilterObject;
+import com.gk.firework.Domain.Utils.Properties;
+import com.gk.firework.Domain.Utils.StringUtils;
+import com.gk.firework.Domain.Utils.UploadUtil;
+import com.gk.firework.Domain.Vo.CheckReportVo;
+import com.gk.firework.Domain.Vo.HiddenDangerTableRow;
+import com.gk.firework.Mapper.HiddenDangerReportMapper;
+import com.gk.firework.Service.EnterpriseService;
+import com.gk.firework.Service.HiddenDangerReportDetailService;
+import com.gk.firework.Service.HiddenDangerReportService;
+import com.gk.firework.Service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.*;
+
+@Service("hiddenDangerReportService")
+public class HiddenDangerReportServiceImpl extends ServiceImpl<HiddenDangerReportMapper, HiddenDangerReport> implements HiddenDangerReportService {
+
+ @Autowired
+ private EnterpriseService enterpriseService;
+ @Autowired
+ private HiddenDangerReportDetailService hiddenDangerReportDetailService;
+ @Autowired
+ private HiddenDangerReportMapper hiddenDangerReportMapper;
+ @Autowired
+ private UserService userService;
+
+
+
+ /**
+ * @Description: 提交自检报告
+ * @date 2021/4/8 14:58
+ */
+ @Override
+ @Transactional
+ public void addCheck(CheckReportVo checkReportVo, UserInfo user) {
+
+ //自检报告基本信息
+ HiddenDangerReport report = new HiddenDangerReport();
+ {
+ //自动生成code
+ report.setCode("SR"+System.currentTimeMillis());
+ report.setApplyperson(checkReportVo.getApplyperson());
+ report.setCreateby(user.getUsername());
+ report.setCreatetime(new Date());
+ report.setEnterpriseid(user.getId());
+ report.setEnterprisename(user.getUsername());
+ report.setStatus(HiddenDangerReportStatus.PENDING);
+ UserInfo userInfo = userService.getById(user.getId());
+ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid());
+ assert enterprise != null;
+ report.setCycle(enterprise.getSelfrecordingcycle());
+ report.setEnterprisenumber(enterprise.getEnterprisenumber());
+ report.setMajornum(0);
+ report.setNormalnum(0);
+ report.setOverduenum(0);
+ report.setUndealnum(0);
+ report.setViewcount(0);
+ report.setTotalnum(0);
+
+ }
+
+ //新增自检已选选项
+ {
+
+ JSONArray jsonArray = JSONArray.parseArray(checkReportVo.getReport());
+ if (jsonArray != null) {
+ List<HiddenDangerTableRow> rows = jsonArray.toJavaList(HiddenDangerTableRow.class);
+ List<HiddenDangerReportDetail> adds;
+ if (rows != null && rows.size() > 0) {
+ adds = new ArrayList<>();
+ for (HiddenDangerTableRow row : rows) {
+ //合格
+ if (row.isQualified() && !row.isUnqualified()) {
+ HiddenDangerTableRow.Unqualified cu = row.getAnswer();
+ HiddenDangerReportDetail q = new HiddenDangerReportDetail();
+ q.setResultid(cu.getResultid());
+ q.setReportcode(report.getCode());
+ q.setValidflag(true);
+ q.setIsqualified(true);
+ q.setChecktypeid(row.getChecktypeid());
+ adds.add(q);
+ }
+ //不合格
+ if (row.isUnqualified() && !row.isQualified()) {
+ HiddenDangerTableRow.Unqualified cu = row.getAnswer();
+ //重大危险
+ if (cu.getLevel() == 2) {
+ report.setMajornum(report.getMajornum() + 1);
+ }else{
+ report.setNormalnum(report.getNormalnum() + 1);
+ }
+ //未处理完个数
+ if (cu.getRectifystatus() == 1) {
+ report.setUndealnum(report.getUndealnum() + 1);
+ }
+
+ HiddenDangerReportDetail uq = new HiddenDangerReportDetail();
+ uq.setChecktypeid(row.getChecktypeid());
+ uq.setResultid(cu.getResultid());
+ uq.setFindtime(cu.getFindtime());
+ uq.setLevel(cu.getLevel());
+ uq.setReportcode(report.getCode());
+ uq.setRectifyprincipal(cu.getRectifyprincipal());
+ uq.setMemo(cu.getMemo());
+ uq.setRectifycompletedate(cu.getRectifycompletedate());
+ uq.setRectifymeasure(cu.getRectifymeasure());
+ uq.setRectifydeadline(cu.getRectifydeadline());
+ uq.setRectifystatus(cu.getRectifystatus());
+ uq.setIsqualified(false);
+ uq.setValidflag(true);
+ uq.setUrl(cu.getUrl());
+ adds.add(uq);
+
+ }
+ }
+
+ if (adds.size() > 0) {
+ report.setTotalnum(adds.size());
+ hiddenDangerReportDetailService.saveBatch(adds);
+ }
+
+ }
+
+ }
+
+
+
+
+ }
+ //新增自检报告->执行
+ {
+ report.setValidflag(true);
+ this.save(report);
+ }
+
+ }
+
+ /**
+ * @Description: 报告统计分页
+ * @date 2021/4/8 18:31
+ */
+ @Override
+ public IPage reportList(Page<HiddenDangerReport> page, Map filter,UserInfo user) {
+
+ UserInfo userInfo = userService.getById(user.getId());
+
+ Map<String, Object> params = new HashMap<>();
+ //监管部门(companyid = null)可视范围为已提交的,否则只能看自己提交的信息
+ params.put("enterprisenumber", userInfo.getCompanynumber());
+ params.put("committed", HiddenDangerReportStatus.COMMITTED);
+ // 过滤条件
+ params.put("province", user.getProvince());
+ params.put("city", user.getCity());
+ params.put("district", user.getArea());
+ params.put("street", user.getTown());
+ params.put("committee", user.getCommunity());
+ params.put("filterProvince", filter.get("province"));
+ params.put("filterCity", filter.get("city"));
+ params.put("filterDistrict", filter.get("district"));
+ params.put("filterStreet", filter.get("street"));
+ params.put("filterCommittee", filter.get("committee"));
+ params.put("safetysupervision", filter.get("safetysupervision"));
+ params.put("cycle", filter.get("cycle"));
+ params.put("enterprisename", filter.get("enterprisename"));
+ params.put("starttime", filter.get("starttime"));
+ params.put("endtime", filter.get("endtime"));
+ params.put("range", filter.get("range"));
+ List<HiddenDangerReport> list = hiddenDangerReportMapper.selectReportList(page, params);
+ if (list.size() > 0) {
+ for (HiddenDangerReport report : list) {
+ //过期并且未处理
+ report.setOverduenum(hiddenDangerReportDetailService.countOverdueByReportCode(report.getCode()));
+ }
+ }
+ return page.setRecords(list);
+ }
+
+ /**
+ * @Description: 根据Id获取单条自检报告
+ * @date 2021/4/8 18:38
+ */
+ @Override
+ public List<HiddenDangerTableRow> getReport(String code) {
+ return hiddenDangerReportMapper.selectReport(code);
+ }
+
+
+ /**
+ * @Description: 修改报告
+ * @date 2021/4/9 10:09
+ */
+ @Override
+ public void modReport(CheckReportVo checkReportVo, UserInfo user) {
+
+ HiddenDangerReport report = new HiddenDangerReport();
+ report.setId(checkReportVo.getReportid());
+ report.setApplyperson(checkReportVo.getApplyperson());
+ report.setMajornum(0);
+ report.setNormalnum(0);
+ report.setOverduenum(0);
+ report.setUndealnum(0);
+ report.setTotalnum(0);
+
+
+ JSONArray jsonArray = JSONArray.parseArray(checkReportVo.getReport());
+ if (jsonArray != null) {
+ List<HiddenDangerTableRow> rows = jsonArray.toJavaList(HiddenDangerTableRow.class);
+ List<HiddenDangerReportDetail> adds;
+ List<HiddenDangerReportDetail> upds2Unqualified;
+ List<HiddenDangerReportDetail> upds2Qualified;
+ List<HiddenDangerReportDetail> dels;
+
+
+ if (rows != null && rows.size() > 0) {
+ adds = new ArrayList<>();
+ upds2Unqualified = new ArrayList<>();
+ upds2Qualified = new ArrayList<>();
+ dels = new ArrayList<>();
+ for (HiddenDangerTableRow row : rows) {
+ //合格
+ HiddenDangerTableRow.Unqualified cu = row.getAnswer();
+ if (row.isQualified() && !row.isUnqualified()) {
+ HiddenDangerReportDetail q = new HiddenDangerReportDetail();
+ if (cu.getId() != null) {
+ q.setId(cu.getId());
+ q.setIsqualified(true);
+ q.setResultid(cu.getResultid());
+ upds2Qualified.add(q);
+ }else{
+ q.setResultid(cu.getResultid());
+ q.setReportcode(checkReportVo.getReportcode());
+ q.setValidflag(true);
+ q.setIsqualified(true);
+ q.setChecktypeid(row.getChecktypeid());
+ q.setReportcode(checkReportVo.getReportcode());
+ adds.add(q);
+ }
+
+ }
+ //不合格
+ if (row.isUnqualified() && !row.isQualified()) {
+ HiddenDangerReportDetail uq = new HiddenDangerReportDetail();
+
+ //重大危险
+ if (cu.getLevel() == 2) {
+ report.setMajornum(report.getMajornum() + 1);
+ }else{
+ report.setNormalnum(report.getNormalnum() + 1);
+ }
+ //未处理完个数
+ if (cu.getRectifystatus() == 1) {
+ report.setUndealnum(report.getUndealnum() + 1);
+ }
+ uq.setChecktypeid(row.getChecktypeid());
+ uq.setResultid(cu.getResultid());
+ uq.setFindtime(cu.getFindtime());
+ uq.setLevel(cu.getLevel());
+ uq.setReportcode(checkReportVo.getReportcode());
+ uq.setRectifyprincipal(cu.getRectifyprincipal());
+ uq.setMemo(cu.getMemo());
+ uq.setRectifystatus(cu.getRectifystatus());
+ uq.setLevel(cu.getLevel());
+ uq.setRectifycompletedate(cu.getRectifycompletedate());
+ uq.setRectifymeasure(cu.getRectifymeasure());
+ uq.setRectifydeadline(cu.getRectifydeadline());
+ uq.setUrl(cu.getUrl());
+
+ if (cu.getId() != null) {
+ uq.setId(cu.getId());
+ uq.setIsqualified(false);
+ upds2Unqualified.add(uq);
+ }else{
+ uq.setIsqualified(false);
+ uq.setValidflag(true);
+ adds.add(uq);
+ }
+
+
+ }
+
+ //删除数据
+ if (!row.isUnqualified() && !row.isQualified()) {
+ if (cu.getId() != null) {
+ HiddenDangerReportDetail deleteOne = new HiddenDangerReportDetail();
+ deleteOne.setId(cu.getId());
+ deleteOne.setValidflag(false);
+ dels.add(deleteOne);
+ }
+ }
+ }
+
+
+
+
+ if (adds.size() > 0) {
+ hiddenDangerReportDetailService.saveBatch(adds);
+ }
+
+ if (upds2Unqualified.size() > 0) {
+ hiddenDangerReportDetailService.updateBatchById(upds2Unqualified);
+ }
+
+ if (upds2Qualified.size() > 0) {
+ hiddenDangerReportDetailService.update2Qualified(upds2Qualified);
+ }
+
+ report.setTotalnum(adds.size() + upds2Unqualified.size() + upds2Qualified.size());
+
+ if (dels.size() > 0) {
+ hiddenDangerReportDetailService.updateBatchById(dels);
+ }
+
+ }
+
+ this.updateById(report);
+
+ }
+
+
+ }
+
+ /**
+ * @Description: 文件上传
+ * @date 2021/4/9 14:57
+ */
+ @Override
+ public String upload(MultipartFile file) {
+ try {
+ String name = UploadUtil.uploadFile(file, Properties.transportCertificatePath);
+ return Properties.transportCertificate + name;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BusinessException("上传文件失败,请联系管理员");
+ }
+ }
+
+ /**
+ * @Description: 查看检查单子
+ * @date 2021/4/13 10:12
+ */
+ @Override
+ public List<HiddenDangerTableRow> viewReport(String code) {
+
+ return hiddenDangerReportMapper.viewReport(code);
+ }
+
+
+ /**
+ * @Description: 提交单子,更新单子状态->已提交
+ * @date 2021/4/13 9:41
+ */
+ @Override
+ public void commitReport(String code) {
+ hiddenDangerReportMapper.updateStatusByCode(HiddenDangerReportStatus.COMMITTED,code);
+ }
+
+
+ /**
+ * @Description: 修改检查
+ * @date 2021/4/13 10:12
+ */
+ @Override
+ public void checkMod(CheckReportVo checkReportVo) {
+ HiddenDangerReport report = this.getById(checkReportVo.getReportid());
+ if (report.getStatus() == HiddenDangerReportStatus.COMMITTED) {
+ throw new BusinessException("已提交状态无法修改");
+ }
+
+ }
+
+ /**
+ * @Description: 重复提交判断
+ * @date 2021/4/13 10:10
+ */
+ @Override
+ public void checkCommit(String code) {
+ HiddenDangerReport report = this.getReportByCode(code);
+ if (report.getStatus() == HiddenDangerReportStatus.COMMITTED) {
+ throw new BusinessException("不能重复提交");
+ }
+ }
+
+ /**
+ * @Description: 根据code获取单子的基本数据
+ * @date 2021/4/13 10:12
+ */
+ @Override
+ public HiddenDangerReport getReportByCode(String code) {
+ return hiddenDangerReportMapper.getReportByCode(code);
+ }
+
+
+
+ /**
+ * @Description: 报告新增不能为空
+ * @date 2021/4/15 16:47
+ */
+ @Override
+ public void checkAdd(CheckReportVo checkReportVo, UserInfo user) {
+ if (StringUtils.isBlank(user.getCompanynumber())) {
+ throw new BusinessException("没有权限新建");
+ }
+
+ if (StringUtils.isBlank(checkReportVo.getApplyperson())) {
+ throw new BusinessException("报告人不能为空");
+ }
+ }
+
+ /**
+ * @Description: 导出隐患自检目录
+ * @date 2021/4/19 16:39
+ */
+ @Override
+ public List<Map> selectExportReport(Map filter, UserInfo user) {
+
+ UserInfo userInfo = userService.getById(user.getId());
+
+ Map<String, Object> params = new HashMap<>();
+ //监管部门(companyid = null)可视范围为已提交的,否则只能看自己提交的信息
+ params.put("enterprisenumber", userInfo.getCompanynumber());
+ params.put("committed", HiddenDangerReportStatus.COMMITTED);
+ // 过滤条件
+ params.put("province", user.getProvince());
+ params.put("city", user.getCity());
+ params.put("district", user.getArea());
+ params.put("street", user.getTown());
+ params.put("committee", user.getCommunity());
+ params.put("filterProvince", filter.get("province"));
+ params.put("filterCity", filter.get("city"));
+ params.put("filterDistrict", filter.get("district"));
+ params.put("filterStreet", filter.get("street"));
+ params.put("filterCommittee", filter.get("committee"));
+ params.put("safetysupervision", filter.get("safetysupervision"));
+ params.put("cycle", filter.get("cycle"));
+ params.put("enterprisename", filter.get("enterprisename"));
+ params.put("starttime", filter.get("starttime"));
+ params.put("endtime", filter.get("endtime"));
+ params.put("range", filter.get("range"));
+
+ List<Map> reports = hiddenDangerReportMapper.selectExportReport(params);
+ if (reports.size() > 0) {
+ for (Map report : reports) {
+ report.put("overduenum", hiddenDangerReportDetailService.countOverdueByReportCode((String) report.get("code")));
+ }
+ }
+ return reports;
+ }
+}
--
Gitblit v1.9.2