package cn.com.goldenwater.dcproj.service.impl.accunt; import cn.com.goldenwater.dcproj.dao.BisInspAccuntDao; import cn.com.goldenwater.dcproj.model.BisInspAccunt; import cn.com.goldenwater.dcproj.param.BisInspAccuntParam; import cn.com.goldenwater.dcproj.service.BisInspAccuntService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.BisInspAccuntVerify; import cn.com.goldenwater.dcproj.utils.ExcelVerifyUtil; import cn.com.goldenwater.dcproj.utils.ImportUtil; import cn.com.goldenwater.dcproj.utils.StringUtils; import org.apache.poi.ss.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.goldenwater.id.util.UuidUtil; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.List; import java.util.Date; /** * @author lhc * @date 2022-3-17 */ @Service @Transactional public class BisInspAccuntServiceImpl extends AbstractCrudService implements BisInspAccuntService { @Autowired private BisInspAccuntDao bisInspAccuntDao; @Value("${export.templatePath}") private String templatePath; @Autowired BisInspAccuntVerify accuntVerify; private final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); public BisInspAccuntServiceImpl(BisInspAccuntDao bisInspAccuntDao) { super(bisInspAccuntDao); this.bisInspAccuntDao = bisInspAccuntDao; } @Override public int insert(BisInspAccunt bisInspAccunt) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspAccunt.setId(uuid); bisInspAccunt.setIntm(new Date()); bisInspAccunt.setUptm(new Date()); bisInspAccunt.setDataStat("0"); return this.bisInspAccuntDao.insert(bisInspAccunt); } @Override public int update(BisInspAccunt bisInspAccunt) { bisInspAccunt.setUptm(new Date()); return this.bisInspAccuntDao.update(bisInspAccunt); } @Override public int delete(String id) { return this.bisInspAccuntDao.delete(id); } @Override public void batch(List bisInspAccunt) { for(int i = 0;i importFile(MultipartFile file, BisInspAccunt account) throws Exception { ImportUtil util = new ImportUtil(){ @Override public void before(BisInspAccunt bisInspAccunt) { bisInspAccunt.setProvince(account.getProvince()); bisInspAccunt.setOrgId(account.getOrgId()); bisInspAccunt.setPersId(account.getPersId()); } }; List list; try { list = util.fileToList(file, BisInspAccunt.class); } catch (Exception e) { throw new RuntimeException(e); } ExcelVerifyUtil verifyUtil = new ExcelVerifyUtil<>(list, accuntVerify); List rightList = verifyUtil.getRightList(); rightList.forEach(a -> this.insert(a)); return verifyUtil.getErrorList(); } private void exportFile(Workbook xssfWorkbook, BisInspAccuntParam bisInspAccuntParam) throws ParseException { List list = bisInspAccuntDao.findList(bisInspAccuntParam); Sheet sheet = xssfWorkbook.getSheetAt(0); String title = "追责结果台账"; if(StringUtils.isNotBlank(bisInspAccuntParam.getYear())){ title = title+"("+bisInspAccuntParam.getYear()+")"; } CellStyle styleColor = sheet.getRow(1).getCell(0).getCellStyle(); CellStyle styleContent = xssfWorkbook.createCellStyle(); styleColor.setAlignment(HorizontalAlignment.CENTER); styleColor.setVerticalAlignment(VerticalAlignment.CENTER); styleContent.setAlignment(HorizontalAlignment.CENTER); styleContent.setVerticalAlignment(VerticalAlignment.CENTER); setCellValue(sheet, 0, 1, title); if(list!=null && list.size()>0){ for(int i = 0;i<=list.size();i++){ Row row = sheet.createRow(2+i); int cols = 9; for(int j = 0;j<=cols;j++){ Cell cell = row.createCell(j); cell.setCellStyle(styleContent); if(i==list.size()){ cell.setCellStyle(styleColor); } } } for(int i = 0;i