package com.gk.firework.Service.ServiceImpl; import com.baomidou.mybatisplus.core.metadata.OrderItem; 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.SelfCheckReport; import com.gk.firework.Domain.Utils.JsonUtils; import com.gk.firework.Domain.Utils.PageInfo; import com.gk.firework.Domain.Vo.SelfCheckReportSearchVo; import com.gk.firework.Domain.Vo.SelfCheckReportVo; import com.gk.firework.Mapper.EnterpriseMapper; import com.gk.firework.Mapper.SelfCheckReportMapper; import com.gk.firework.Service.EnterpriseService; import com.gk.firework.Service.SelfCheckReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service("SelfCheckReportService") public class SelfCheckReportServiceImpl extends ServiceImpl implements SelfCheckReportService { @Autowired SelfCheckReportMapper selfCheckReportMapper; @Autowired EnterpriseService enterpriseService; @Override public int createNewReport(SelfCheckReportVo reportVo) { if(checkVoForCreate(reportVo) == false){ return 0; } SelfCheckReport selfCheckReport = null; Enterprise e = enterpriseService.getById(reportVo.getEid()); if(e!= null){ selfCheckReport = new SelfCheckReport(); Date sysTime = new Date(); selfCheckReport.setEid(e.getId()); selfCheckReport.setEname(e.getEnterprisename()); selfCheckReport.setChecktime(sysTime); selfCheckReport.setPrice(reportVo.getPrice()); if(reportVo.getStatus()==1 || reportVo.getStatus()==2){ selfCheckReport.setStatus(reportVo.getStatus()); } else{ selfCheckReport.setStatus((byte)1); } selfCheckReport.setYhdesc(reportVo.getYhdesc()); selfCheckReport.setYhlevel(reportVo.getYhlevel()); selfCheckReport.setSolution(reportVo.getSolution()); selfCheckReport.setEndtime(reportVo.getEndtime()); selfCheckReport.setChargeperson(reportVo.getChargeperson()); } if(selfCheckReport!=null){ return selfCheckReportMapper.insert(selfCheckReport); }else { return 0; } } @Override public SelfCheckReport getSelfCheckReportById(Long id) { return selfCheckReportMapper.selectByReportId(id); } @Override public int updateSelfCheckReport(SelfCheckReportVo reportVo) { SelfCheckReport report = selfCheckReportMapper.selectByReportId(reportVo.getId()); if(report == null){ return 0; } if(!report.getEid().equals(reportVo.getEid())){ return 0; } if(report.getStatus() == 2){ return 0; } if(report.getStatus() ==1 && reportVo.getStatus() == 2){ report.setStatus((byte) 2); } if(!reportVo.getChargeperson().isEmpty()){ report.setChargeperson(reportVo.getChargeperson()); } if(!reportVo.getYhdesc().isEmpty()){ report.setYhdesc(reportVo.getYhdesc()); } if(reportVo.getEndtime() != null){ report.setEndtime(reportVo.getEndtime()); } if(!reportVo.getSolution().isEmpty()){ report.setSolution(reportVo.getSolution()); } if(reportVo.getYhlevel() == 1 || reportVo.getYhlevel() == 2){ report.setYhlevel(reportVo.getYhlevel()); } report.setPrice(reportVo.getPrice()); return selfCheckReportMapper.updateReport(report); } @Override public List findSelfCheckReportList(Long enterpriseId, Byte status,Byte yhlevel) { return selfCheckReportMapper.selectReportListByCondition(enterpriseId,status,yhlevel); } @Override public List findSelfCheckReportListWithAllCondition(SelfCheckReportSearchVo searchVo) { //1、解析企业ID集合 List eidList = null; //优先级别:1-指定企业ID,2-指定企业名称。3-指定省市区范围 if(searchVo.getEid() != null && searchVo.getEid().longValue() > 0){ if(enterpriseService.getById(searchVo.getEid())!=null){ eidList = new ArrayList<>(); eidList.add(searchVo.getEid()); }else { return null; } }else if(searchVo.getEname() != null && !searchVo.getEname().isEmpty()){ List list = enterpriseService.selectEnterpriseListByNameLike(searchVo.getEname()); if(list != null && list.size() >0){ eidList = new ArrayList<>(); for(Enterprise e : list){ eidList.add(e.getId()); } }else { return null; } }else if(searchVo.getProvince()!=null && !searchVo.getProvince().isEmpty()){ List enterpriseList = enterpriseService.findEnterpriseListByLocation(searchVo.getProvince(),searchVo.getCity(),searchVo.getDistrict(),searchVo.getStreet(),searchVo.getCommittee()); if(enterpriseList!=null){ eidList = new ArrayList<>(); for(Enterprise e : enterpriseList){ eidList.add(e.getId()); } } if(eidList == null || eidList.size()<=0 ){ return null; } } //2、设定分页参数 if (searchVo.getPage()==null || searchVo.getPage() <=0){ //未指定页数,默认第1页 searchVo.setPage(1); } if(searchVo.getPageSize() == null || searchVo.getPageSize() <= 0){ //未指定页大小,默认20条 searchVo.setPageSize(20); } Page page = new Page<>(searchVo.getPage(),searchVo.getPageSize()); List orderItems = new ArrayList<>(); OrderItem orderItem = new OrderItem(); orderItem.setAsc(false); orderItem.setColumn("id"); orderItems.add(orderItem); page.setOrders(orderItems); //3、查找 List list = null; list = selfCheckReportMapper.selectReportListWithEnterpriseIdList(eidList,searchVo.getStatus(),searchVo.getYhlevel(),searchVo.getStartTime(),searchVo.getEndTime(),page); searchVo.setTotalCount(page.getTotal()); return list; } /** * 新增隐患信息参数检查 * @param reportVo * @return */ private boolean checkVoForCreate(SelfCheckReportVo reportVo){ if(reportVo.getStatus()<1 ||reportVo.getStatus()>2){ return false; } if(reportVo.getYhlevel() <1 || reportVo.getYhlevel() >2){ return false; } if(reportVo.getChargeperson().isEmpty() || reportVo.getYhdesc().isEmpty() || reportVo.getSolution().isEmpty()){ return false; } if(reportVo.getPrice().intValue()<0){ return false; } if(reportVo.getEndtime().before(new Date())){ return false; } return true; } }