From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: 星期一, 19 六月 2023 14:44:19 +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