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