| | |
| | | package com.panzhihua.common.listen; |
| | | |
| | | import static java.util.Objects.isNull; |
| | | import static java.util.Objects.nonNull; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | |
| | | |
| | | @Override |
| | | public void invoke(WarehouseDonatesExcelVO warehouseDonatesExcelVO, AnalysisContext analysisContext) { |
| | | if (StringUtils.isEmpty(warehouseDonatesExcelVO.getItem())) { |
| | | throw new ServiceException("捐赠物品名称不可为空"); |
| | | } |
| | | Integer quantity = warehouseDonatesExcelVO.getQuantity(); |
| | | if (isNull(quantity) || quantity <= 0) { |
| | | throw new ServiceException("捐赠数量有误"); |
| | | } |
| | | if (StringUtils.isEmpty(warehouseDonatesExcelVO.getName())) { |
| | | warehouseDonatesExcelVO.setIsAnonymous("是"); |
| | | } |
| | | warehouseDonatesExcelVO.setCommunityId(this.communityId); |
| | | warehouseDonatesExcelVO.setStatus(2); |
| | | warehouseDonatesExcelVO.setSurplusQuantity(quantity); |
| | | warehouseDonatesExcelVO.setRegisterBy(this.registerBy); |
| | | warehouseDonatesExcelVO.setSigningBy(this.registerBy); |
| | | list.add(warehouseDonatesExcelVO); |
| | | // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM |
| | | if (list.size() >= BATCH_COUNT) { |
| | | doAfterAllAnalysed(analysisContext); |
| | | list.clear(); |
| | | if (!StringUtils.isEmpty(warehouseDonatesExcelVO.getItem()) && nonNull(quantity)) { |
| | | if (quantity <= 0) { |
| | | throw new ServiceException("捐赠数量有误"); |
| | | } |
| | | if (StringUtils.isEmpty(warehouseDonatesExcelVO.getName()) |
| | | || isNull(warehouseDonatesExcelVO.getIsAnonymous())) { |
| | | warehouseDonatesExcelVO.setIsAnonymous("是"); |
| | | } |
| | | if (isNull(warehouseDonatesExcelVO.getSigningAt())) { |
| | | Date nowDate = new Date(); |
| | | warehouseDonatesExcelVO.setSigningAt(nowDate); |
| | | warehouseDonatesExcelVO.setRegisterAt(nowDate); |
| | | } else { |
| | | warehouseDonatesExcelVO.setRegisterAt(warehouseDonatesExcelVO.getSigningAt()); |
| | | } |
| | | warehouseDonatesExcelVO.setCommunityId(this.communityId); |
| | | warehouseDonatesExcelVO.setStatus(2); |
| | | warehouseDonatesExcelVO.setSurplusQuantity(quantity); |
| | | warehouseDonatesExcelVO.setRegisterBy(this.registerBy); |
| | | warehouseDonatesExcelVO.setSigningBy(this.registerBy); |
| | | list.add(warehouseDonatesExcelVO); |
| | | // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM |
| | | if (list.size() >= BATCH_COUNT) { |
| | | doAfterAllAnalysed(analysisContext); |
| | | list.clear(); |
| | | } |
| | | } |
| | | } |
| | | |