Browse Source

/gov/org/communityBuildingManager/import

master
yinzuomei 2 years ago
parent
commit
73a98fe99e
  1. 5
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java
  2. 60
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java
  3. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java
  4. 39
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java

5
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java

@ -88,4 +88,9 @@ public interface ImportTaskConstants {
* 物业表ic_property_management
*/
String IC_PROPERTY_MANAGEMENT="ic_property_management";
/**
* 楼长单元长
*/
String COMMUNITY_BUILDING_MANAGER="community_building_manager";
}

60
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java

@ -10,19 +10,26 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO;
import com.epmet.dto.result.CommunityBuildingManagerDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO;
import com.epmet.service.CommunityBuildingManagerService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.IndexedColors;
@ -31,15 +38,19 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
@ -51,7 +62,7 @@ import java.util.List;
@Slf4j
@RestController
@RequestMapping("communityBuildingManager")
public class CommunityBuildingManagerController {
public class CommunityBuildingManagerController implements ResultDataResolver {
@Autowired
private CommunityBuildingManagerService communityBuildingManagerService;
@ -207,6 +218,53 @@ public class CommunityBuildingManagerController {
}
}
/**
* 导入excel
*
* @return
*/
@PostMapping("import")
public Result importExcel(MultipartFile file) {
// 1.暂存文件
String originalFilename = file.getOriginalFilename();
String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
Path fileSavePath;
try {
Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER, "import");
fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName));
} catch (IOException e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【楼长单元长导入】创建临时存储文件失败:{}", errorMsg);
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败");
}
InputStream is = null;
FileOutputStream os = null;
try {
is = file.getInputStream();
os = new FileOutputStream(fileSavePath.toString());
IOUtils.copy(is, os);
} catch (Exception e) {
log.error(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER + "表 importExcel exception", e);
} finally {
org.apache.poi.util.IOUtils.closeQuietly(is);
org.apache.poi.util.IOUtils.closeQuietly(os);
}
// 2.生成导入任务记录
ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(
ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.COMMUNITY_BUILDING_MANAGER),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"楼长单元长导入excel错误",
"楼长单元长导入excel错误");
// 3.执行导入
communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId());
return new Result();
}

3
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java

@ -7,6 +7,7 @@ import com.epmet.dto.result.CommunityBuildingManagerDTO;
import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO;
import com.epmet.entity.CommunityBuildingManagerEntity;
import java.nio.file.Path;
import java.util.List;
/**
@ -63,4 +64,6 @@ public interface CommunityBuildingManagerService extends BaseService<CommunityBu
* @return
*/
void delete(List<String> ids);
void execAsyncExcelImport(Path fileSavePath, String taskId);
}

39
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java

@ -22,11 +22,14 @@ import com.epmet.service.CommunityBuildingManagerService;
import com.epmet.service.CustomerGridService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.nio.file.Path;
import java.util.List;
/**
@ -35,6 +38,7 @@ import java.util.List;
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-05-06
*/
@Slf4j
@Service
public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<CommunityBuildingManagerDao, CommunityBuildingManagerEntity> implements CommunityBuildingManagerService {
@ -67,7 +71,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
formDTO.getBuildingId(),
formDTO.getUnitId(), null);
PageInfo<CommunityBuildingManagerResultDTO> pageInfo = new PageInfo<>(resList);
return new PageData<>(resList, pageInfo.getTotal(),formDTO.getPageSize());
return new PageData<>(resList, pageInfo.getTotal(), formDTO.getPageSize());
}
/**
@ -108,7 +112,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
@Transactional(rollbackFor = Exception.class)
public void save(CommunityBuildingManagerDTO addFormDto) {
// 唯一性判断,类型+楼栋id或者类型+单元id唯一
checkUnqiue(addFormDto.getType(),addFormDto.getBuildingId(),addFormDto.getUnitId(),null);
checkUnqiue(addFormDto.getType(), addFormDto.getBuildingId(), addFormDto.getUnitId(), null);
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(addFormDto, CommunityBuildingManagerEntity.class);
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(addFormDto.getGridId());
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids()));
@ -118,13 +122,13 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
private void checkUnqiue(String type, String buildingId, String unitId, String id) {
// 1号楼只允许有一个楼长
// 1号楼只允许有一个单元长
LambdaQueryWrapper<CommunityBuildingManagerEntity> countQuery=new LambdaQueryWrapper<>();
countQuery.eq(CommunityBuildingManagerEntity::getType,type)
.eq(CommunityBuildingManagerEntity::getBuildingId,buildingId)
.eq(StringUtils.isNotBlank(unitId),CommunityBuildingManagerEntity::getUnitId,unitId)
.ne(StringUtils.isNotBlank(id),CommunityBuildingManagerEntity::getId,id);
if(baseDao.selectCount(countQuery)>NumConstant.ZERO){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)","所选楼栋(单元)已存在楼长(单元长)");
LambdaQueryWrapper<CommunityBuildingManagerEntity> countQuery = new LambdaQueryWrapper<>();
countQuery.eq(CommunityBuildingManagerEntity::getType, type)
.eq(CommunityBuildingManagerEntity::getBuildingId, buildingId)
.eq(StringUtils.isNotBlank(unitId), CommunityBuildingManagerEntity::getUnitId, unitId)
.ne(StringUtils.isNotBlank(id), CommunityBuildingManagerEntity::getId, id);
if (baseDao.selectCount(countQuery) > NumConstant.ZERO) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选楼栋(单元)已存在楼长(单元长)", "所选楼栋(单元)已存在楼长(单元长)");
}
}
@ -138,7 +142,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
@Override
@Transactional(rollbackFor = Exception.class)
public void update(CommunityBuildingManagerDTO updateFormDto) {
checkUnqiue(updateFormDto.getType(),updateFormDto.getBuildingId(),updateFormDto.getUnitId(),updateFormDto.getId());
checkUnqiue(updateFormDto.getType(), updateFormDto.getBuildingId(), updateFormDto.getUnitId(), updateFormDto.getId());
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(updateFormDto, CommunityBuildingManagerEntity.class);
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(updateFormDto.getGridId());
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids()));
@ -158,4 +162,19 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
baseDao.deleteBatchIds(ids);
}
/**
* 执行Excel导入
*
* @param filePath
* @param importTaskId
*/
@Async
@Override
public void execAsyncExcelImport(Path filePath, String importTaskId) {
// todo
return;
}
}
Loading…
Cancel
Save