对比新文件 |
| | |
| | | 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; |
| | | } |
| | | } |