package com.gk.firework.Service.ServiceImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.EnterpriseFeed; import com.gk.firework.Domain.EnterpriseResource; import com.gk.firework.Domain.Exception.BusinessException; import com.gk.firework.Domain.UserInfo; import com.gk.firework.Domain.Utils.*; import com.gk.firework.Domain.Utils.Properties; import com.gk.firework.Domain.Vo.EnterpriseFeedVo; import com.gk.firework.Mapper.EnterpriseFeedMapper; import com.gk.firework.Service.EnterpriseFeedService; import com.gk.firework.Service.EnterpriseResourceService; import com.gk.firework.Service.ExcelExportService; 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.io.*; import java.text.SimpleDateFormat; import java.util.*; @Service("enterpriseFeedService") public class EnterpriseFeedServiceImpl extends ServiceImpl implements EnterpriseFeedService { @Autowired private EnterpriseFeedMapper enterpriseFeedMapper; @Autowired private ExcelExportService excelExportService; @Autowired private EnterpriseResourceService enterpriseResourceService; @Autowired private UserService userService; /** * @Description: 查询自检 * @date 2021/5/13 18:44 */ @Override public IPage selectPages(Page page, Long id, UserInfo user) { Map params = new HashMap<>(); params.put("tabletype", Constants.FEED); params.put("id", id); List list = enterpriseFeedMapper.selectPages(page, params); return page.setRecords(list); } /** * @Description: 新增自检 * @date 2021/5/13 18:44 */ @Override @Transactional public void addFeed(EnterpriseFeedVo enterpriseFeedVo, UserInfo user) { if (enterpriseFeedVo.getEnterpriseid() == null) { throw new BusinessException("缺少企业关键数据"); } enterpriseFeedVo.setValidflag(true); enterpriseFeedVo.setCreatetime(new Date()); enterpriseFeedVo.setCreateby(user.getId()); enterpriseFeedVo.setCreatebyname(user.getUsername()); this.save(enterpriseFeedVo); List adds = null; MultipartFile[] files = enterpriseFeedVo.getFile(); try { if (files != null && files.length > 0) { adds = new ArrayList<>(); Date now = new Date(); for (MultipartFile file : files) { String name = UploadUtil.uploadFile(file, Properties.enterprisePath); EnterpriseResource er = new EnterpriseResource(); er.setTabletype(Constants.FEED); er.setFilename(file.getOriginalFilename()); er.setUrl(Properties.enterprise + name); er.setCreatetime(now); er.setCreateby(user.getId()); er.setCreatebyname(user.getUsername()); er.setBelongid(enterpriseFeedVo.getId()); er.setValidflag(true); adds.add(er); } //执行 enterpriseResourceService.saveBatch(adds); } } catch (Exception e) { e.printStackTrace(); throw new BusinessException("上传失败,请联系管理员"); } } /** * @Description: 导入反馈 * @date 2021/5/13 18:52 */ @Override public void importFeed(MultipartFile file, UserInfo user,Long enterpriseId) { if (file == null || file.getSize() == 0) { throw new BusinessException("上传文件或者请求出现问题"); } if(!FileOptUtils.isDirExists(Properties.filePath)){ throw new BusinessException("发生错误或不为目录"); } if (enterpriseId == null) { throw new BusinessException("缺少企业关键数据"); } SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmssSSS" ); String fileSave = Properties.enterprisePath + user.getUsername() +"_feed_" + sdf.format(new Date()) +".xlsx"; try { file.transferTo(new File(fileSave)); InputStream in = new FileInputStream(fileSave); String name = file.getOriginalFilename(); assert name != null; Boolean isExcel2007 = name.substring(name.lastIndexOf(".") + 1).endsWith("xlsx"); excelExportService.importFeedExcel(in, user, isExcel2007,enterpriseId); } catch (FileNotFoundException e) { e.printStackTrace(); throw new BusinessException("找不到文件"); } catch (IOException e) { e.printStackTrace(); throw new BusinessException("发生错误,请联系管理员"); } } /** * @Description: 导出反馈 * @date 2021/5/14 11:11 */ @Override public List exportFeed(Map filter, UserInfo user) { UserInfo userInfo = userService.getById(user.getId()); Map params = new HashMap<>(); //监管部门 根据 地区看所有 params.put("province", userInfo.getProvince()); params.put("city", userInfo.getCity()); params.put("district", userInfo.getArea()); params.put("street", userInfo.getTown()); params.put("committee", userInfo.getCommunity()); //企业用户 params.put("enterprisenumber", userInfo.getCompanynumber()); //过滤条件 { //企业类型 params.put("safetySupervision", filter.get("safetysupervision")); //经济类型 params.put("economicIndustry", filter.get("economicindustry")); //许可证有效|过期 params.put("valid", filter.get("valid")); //地区 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("enterprisename", filter.get("enterprisename")); } return enterpriseFeedMapper.selectExportFeed(params); } @Override public List exportFeedById(Long id) { if (id == null) { throw new BusinessException("参数传递为空"); } return enterpriseFeedMapper.selectExportFeedById(id); } }