Browse Source

Merge branch 'dev_5big_coverage' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_5big_coverage

feature/teamB_zz_wgh
wangxianzhang 3 years ago
parent
commit
b0ec96518c
  1. 1
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java
  2. 9
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java
  3. 2
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CommunitySelfOrganizationListFormDTO.java
  4. 1
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java
  5. 3
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java
  6. 11
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java
  7. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java
  8. 26
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java
  9. 26
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java
  10. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml
  11. 59
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcCityManagementController.java
  12. 64
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcDangerousChemicalsController.java
  13. 59
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPublicServiceController.java
  14. 61
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcSuperiorResourceController.java
  15. 7
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcDangerousChemicalsEntity.java
  16. 25
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java
  17. 25
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java
  18. 24
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcSuperiorResourceExcel.java
  19. 132
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java
  20. 132
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPublicServiceExcelImportListener.java
  21. 134
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcSuperiorResourceExcelImportListener.java
  22. 154
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java
  23. 91
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java
  24. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcCityManagementService.java
  25. 12
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java
  26. 4
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPublicServiceService.java
  27. 3
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcSuperiorResourceService.java
  28. 131
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcCityManagementServiceImpl.java
  29. 120
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java
  30. 129
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPublicServiceServiceImpl.java
  31. 130
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcSuperiorResourceServiceImpl.java
  32. 5
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/IcEventDTO.java
  33. 4
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java
  34. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java
  35. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventListResultDTO.java
  36. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java
  37. 3
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java
  38. 5
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java
  39. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java
  40. 29
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  41. 2
      epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.25__alter_ic_event.sql
  42. 20
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

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

@ -19,6 +19,7 @@ public interface ImportTaskConstants {
String BIZ_TYPE_ATTENTION_VACCINATION = "attention_vaccination";
String BIZ_TYPE_ATTENTION_TRIP_REPORT = "attention_vaccination";
String BIZ_TYPE_IC_PARTY_MEMBER = "ic_party_member";
String BIZ_TYPE_IC_DANGEROUS_CHEMICALS = "ic_dangerous_chemicals";
/**
* 核酸检测
*/

9
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcPartyUnitDTO.java

@ -69,12 +69,21 @@ public class IcPartyUnitDTO implements Serializable {
@NotBlank(message = "分类不能为空",groups = AddGroup.class)
private String type;
/**
* 分类名称
*/
private String typeName;
/**
* 服务事项 多选逗号隔开
*/
private String serviceMatter;
private List<String> serviceMatterList;
/**
* 服务事项名称
*/
private List<String> serviceMatterNameList;
/**
* 联系人

2
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/CommunitySelfOrganizationListFormDTO.java

@ -50,4 +50,6 @@ public class CommunitySelfOrganizationListFormDTO implements Serializable {
private String remark;
private String categoryCode;
//查详情时候用
private String orgId;
}

1
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java

@ -157,4 +157,5 @@ public interface EpmetHeartOpenFeignClient {
*/
@PostMapping("/heart/resi/volunteer/addVolunteer")
Result addVolunteer(@RequestBody ResiVolunteerAuthenticateFormDTO formDTO);
}

3
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java

@ -13,11 +13,13 @@ import com.epmet.dto.form.IcDemandFormDTO;
import com.epmet.dto.form.PartyUnitListFormDTO;
import com.epmet.dto.form.demand.DemandRecId;
import com.epmet.dto.form.demand.IcEventCommentToDemandFromDTO;
import com.epmet.dto.form.demand.ServiceItemSelectFormDTO;
import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.form.resi.VolunteerCommonFormDTO;
import com.epmet.dto.result.PartyUnitListResultDTO;
import com.epmet.dto.result.demand.IcResiDemandDictDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO;
import com.epmet.feign.EpmetHeartOpenFeignClient;
@ -158,4 +160,5 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli
public Result addVolunteer(ResiVolunteerAuthenticateFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "addVolunteer", formDTO);
}
}

11
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcCommunitySelfOrganizationController.java

@ -255,6 +255,17 @@ public class IcCommunitySelfOrganizationController {
return new Result<CommunitySelfOrganizationListResultDTO>().ok(icCommunitySelfOrganizationService.communitySelfOrganizationList(tokenDto, formDTO));
}
/**
* 社区自组织详情
* @param orgId 社区自组织id
* @return
*/
@PostMapping("community-self-org-detail/{orgId}")
public Result<CommunitySelfOrganizationListDTO> communitySelfOrganizationDetail(@LoginUser TokenDto tokenDto,@PathVariable("orgId") String orgId){
return new Result<CommunitySelfOrganizationListDTO>().ok(icCommunitySelfOrganizationService.communitySelfOrganizationDetail(orgId,tokenDto.getCustomerId()));
}
/**
* @Description 社区自组织删除
* @param formDTO

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcCommunitySelfOrganizationService.java

@ -181,4 +181,11 @@ public interface IcCommunitySelfOrganizationService extends BaseService<IcCommun
* @return
*/
PageData<CommunitySelfOrganizationListDTO> queryCoordinateList(CategorySelfOrgFormDTO formDTO);
/**
* 社区自组织详情
* @param orgId
* @return
*/
CommunitySelfOrganizationListDTO communitySelfOrganizationDetail(String orgId,String customerId);
}

26
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcCommunitySelfOrganizationServiceImpl.java

@ -800,4 +800,30 @@ public class IcCommunitySelfOrganizationServiceImpl extends BaseServiceImpl<IcCo
return new PageData<>(list, NumConstant.ONE_NEG);
}
/**
* 社区自组织详情
*
* @param orgId
* @return
*/
@Override
public CommunitySelfOrganizationListDTO communitySelfOrganizationDetail(String orgId,String customerId) {
//获取分类名称字典
Result<Map<String, String>> dictMapRes=adminOpenFeignClient.dictMap(DictTypeEnum.SELF_ORG_CATEGORY.getCode());
Map<String, String> dictMap = dictMapRes.success() && MapUtils.isNotEmpty(dictMapRes.getData()) ? dictMapRes.getData() : new HashMap<>();
CommunitySelfOrganizationListFormDTO formDTO=new CommunitySelfOrganizationListFormDTO();
formDTO.setCustomerId(customerId);
formDTO.setOrgId(orgId);
List<CommunitySelfOrganizationListDTO> list=baseDao.selectCommunitySelfOrganizationList(formDTO);
if(CollectionUtils.isEmpty(list)){
return null;
}
for (CommunitySelfOrganizationListDTO l : list) {
//赋值分类名称
l.setCategoryName(dictMap.get(l.getCategoryCode()));
}
return list.get(NumConstant.ZERO);
}
}

26
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcPartyUnitServiceImpl.java

@ -60,15 +60,16 @@ import com.epmet.excel.IcPartyUnitImportExcel;
import com.epmet.excel.IcPartyUnitImportFailedExcel;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.EpmetHeartOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.IcPartyUnitService;
import com.epmet.service.IcResiDemandDictService;
import com.epmet.service.IcServiceItemDictService;
import com.epmet.service.IcUserDemandRecService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
@ -103,13 +104,13 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl<IcPartyUnitDao, IcPa
@Resource
private IcUserDemandRecService icUserDemandRecService;
@Resource
private IcResiDemandDictService icResiDemandDictService;
@Resource
private IcServiceItemDictService icServiceItemDictService;
@Resource
private OssFeignClient ossFeignClient;
@Resource
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Resource
private EpmetHeartOpenFeignClient heartOpenFeignClient;
@Override
public PageData<IcPartyUnitDTO> search(PartyUnitFormDTO formDTO) {
@ -198,6 +199,25 @@ public class IcPartyUnitServiceImpl extends BaseServiceImpl<IcPartyUnitDao, IcPa
Map<String, Integer> pointMap = icUserDemandRecService.getServicePoint(entity.getCustomerId(), UserDemandConstant.PARTY_UNIT);
dto.setServiceMatterList(Arrays.asList(dto.getServiceMatter().split(StrConstant.COMMA)));
dto.setScore(null == pointMap.get(id) ? NumConstant.ZERO : pointMap.get(id));
// 分类名称
//获取分类名称字典
Result<Map<String, String>> typeDictMapRes=epmetAdminOpenFeignClient.dictMap(DictTypeEnum.PARTY_UNIT_TYPE.getCode());
Map<String, String> typeDictMap = typeDictMapRes.success() && MapUtils.isNotEmpty(typeDictMapRes.getData()) ? typeDictMapRes.getData() : new HashMap<>();
dto.setType(MapUtils.isNotEmpty(typeDictMap) && typeDictMap.containsKey(dto.getType()) ? typeDictMap.get(dto.getType()) : StrConstant.EPMETY_STR);
// 服务事项
if(CollectionUtils.isNotEmpty(dto.getServiceMatterList())){
List<OptionDTO> serviceMateerRes=icServiceItemDictService.queryDictList(entity.getCustomerId());
if(CollectionUtils.isNotEmpty(serviceMateerRes)){
Map<String,String> serviceMap=serviceMateerRes.stream().collect(Collectors.toMap(OptionDTO::getValue,OptionDTO::getLabel));
List<String> serviceMatterNameList=new ArrayList<>();
for(String serviceMatterCode:dto.getServiceMatterList()){
if(MapUtils.isNotEmpty(serviceMap)&&serviceMap.containsKey(serviceMatterCode)){
serviceMatterNameList.add(serviceMap.get(serviceMatterCode));
}
}
dto.setServiceMatterNameList(serviceMatterNameList);
}
}
}
return dto;
}

7
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcCommunitySelfOrganizationDao.xml

@ -62,7 +62,9 @@
so.remark
FROM ic_community_self_organization so
WHERE so.DEL_FLAG = 0
AND so.ORG_ID = #{agencyId}
<if test="null != agencyId and agencyId != '' ">
AND so.ORG_ID = #{agencyId}
</if>
AND so.CUSTOMER_ID = #{customerId}
<if test="null != organizationName and organizationName != '' ">
AND so.ORGANIZATION_NAME LIKE CONCAT('%',#{organizationName},'%')
@ -76,6 +78,9 @@
<if test="null != endTime and endTime != '' ">
AND so.ORGANIZATION_CREATED_TIME <![CDATA[ <= ]]> #{endTime}
</if>
<if test="null != orgId and orgId != '' ">
AND so.ID = #{orgId}
</if>
ORDER BY so.ORGANIZATION_CREATED_TIME DESC
</select>

59
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcCityManagementController.java

@ -7,40 +7,47 @@ 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.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcCityManagementDTO;
import com.epmet.dto.form.IcCityManagementAddEditFormDTO;
import com.epmet.dto.form.IcCityManagementListFormDTO;
import com.epmet.dto.result.IcCityManagementListResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.excel.IcCityManagementExcel;
import com.epmet.service.IcCityManagementService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
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;
/**
@ -52,7 +59,7 @@ import java.util.List;
@RestController
@RequestMapping("icCityManagement")
@Slf4j
public class IcCityManagementController {
public class IcCityManagementController implements ResultDataResolver {
@Autowired
private IcCityManagementService icCityManagementService;
@ -159,6 +166,48 @@ public class IcCityManagementController {
}
}
@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("ic_city_management", "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("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.BIZ_TYPE_IC_VACCINE),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"excel导入优势资源管理信息错误",
"导入势资源管理信息失败");
// 3.执行导入
icCityManagementService.importExcel(fileSavePath, rstData.getTaskId());
return new Result();
}
}

64
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcDangerousChemicalsController.java

@ -7,40 +7,48 @@ 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.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcDangerousChemicalsDTO;
import com.epmet.dto.form.IcDangerousChemicalsAddEditFormDTO;
import com.epmet.dto.form.IcDangerousChemicalsListFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.IcDangerousChemicalsListResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.excel.IcDangerousChemicalsExcel;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.IcDangerousChemicalsService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
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;
/**
@ -56,6 +64,8 @@ public class IcDangerousChemicalsController {
@Autowired
private IcDangerousChemicalsService icDangerousChemicalsService;
@Autowired
private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient;
@RequestMapping("list")
public Result<PageData<IcDangerousChemicalsListResultDTO>> list(@LoginUser TokenDto tokenDto, @RequestBody IcDangerousChemicalsListFormDTO formDTO) {
@ -159,7 +169,51 @@ public class IcDangerousChemicalsController {
}
}
/**
* Desc: 重点危化品企业导入
* @param file
* @param tokenDto
* @author zxc
* @date 2022/6/20 10:25
*/
@PostMapping("import")
public Result dangerousChemicalsImport(@RequestParam("file")MultipartFile file,@LoginUser TokenDto tokenDto){
// 1.暂存文件
String originalFilename = file.getOriginalFilename();
String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
Path fileSavePath;
try {
Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_dangerous_chemicals", "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("importExcel exception", e);
} finally {
org.apache.poi.util.IOUtils.closeQuietly(is);
org.apache.poi.util.IOUtils.closeQuietly(os);
}
// 2.生成导入任务记录
ImportTaskCommonFormDTO importFormDTO = new ImportTaskCommonFormDTO();
importFormDTO.setBizType(ImportTaskConstants.BIZ_TYPE_IC_DANGEROUS_CHEMICALS);
importFormDTO.setOperatorId(tokenDto.getUserId());
importFormDTO.setOriginFileName(file.getOriginalFilename());
Result<ImportTaskCommonResultDTO> importTask = epmetCommonServiceOpenFeignClient.createImportTask(importFormDTO);
if (!importTask.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "", "存在进行中的导入");
}
icDangerousChemicalsService.dangerousChemicalsImport(fileSavePath,importTask.getData().getTaskId(),tokenDto);
return new Result();
}
}

59
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcPublicServiceController.java

@ -7,41 +7,48 @@ 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.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcPublicServiceDTO;
import com.epmet.dto.form.IcPublicServiceAddEditFormDTO;
import com.epmet.dto.form.IcPublicServiceListFormDTO;
import com.epmet.dto.form.IcSuperiorResourceAddEditFormDTO;
import com.epmet.dto.result.IcPublicServiceListResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.excel.IcPublicServiceExcel;
import com.epmet.service.IcPublicServiceService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
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;
/**
@ -53,7 +60,7 @@ import java.util.List;
@RestController
@RequestMapping("icPublicService")
@Slf4j
public class IcPublicServiceController {
public class IcPublicServiceController implements ResultDataResolver {
@Autowired
private IcPublicServiceService icPublicServiceService;
@ -160,6 +167,48 @@ public class IcPublicServiceController {
}
}
@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("ic_public_service", "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("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.BIZ_TYPE_IC_VACCINE),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"excel导入优势资源管理信息错误",
"导入势资源管理信息失败");
// 3.执行导入
icPublicServiceService.importExcel(fileSavePath, rstData.getTaskId());
return new Result();
}
}

61
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcSuperiorResourceController.java

@ -6,41 +6,49 @@ import com.alibaba.excel.write.metadata.WriteSheet;
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.AppClientConstant;
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.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcSuperiorResourceDTO;
import com.epmet.dto.form.IcSuperiorResourceAddEditFormDTO;
import com.epmet.dto.form.IcSuperiorResourceListFormDTO;
import com.epmet.dto.result.IcSuperiorResourceListResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.excel.IcSuperiorResourceExcel;
import com.epmet.service.IcSuperiorResourceService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
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;
/**
@ -52,7 +60,7 @@ import java.util.List;
@RestController
@RequestMapping("icSuperiorResource")
@Slf4j
public class IcSuperiorResourceController {
public class IcSuperiorResourceController implements ResultDataResolver {
@Autowired
private IcSuperiorResourceService icSuperiorResourceService;
@ -159,5 +167,48 @@ public class IcSuperiorResourceController {
}
}
@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("ic_superior_resource", "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("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.BIZ_TYPE_IC_VACCINE),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"excel导入优势资源管理信息错误",
"导入势资源管理信息失败");
// 3.执行导入
icSuperiorResourceService.importExcel(fileSavePath, rstData.getTaskId());
return new Result();
}
}

7
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcDangerousChemicalsEntity.java

@ -1,5 +1,6 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
@ -88,4 +89,10 @@ public class IcDangerousChemicalsEntity extends BaseEpmetEntity {
*/
private String remark;
@TableField(exist = false)
private String dangerTypeName;
@TableField(exist = false)
private String categoryName;
}

25
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcCityManagementExcel.java

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 城市管理图层
*
@ -15,10 +17,12 @@ public class IcCityManagementExcel {
@ExcelProperty(value = "场所名称")
@ColumnWidth(25)
@NotBlank(message = "场所名称为必填项")
private String name;
@ExcelProperty(value = "场所类别")
@ColumnWidth(20)
@NotBlank(message = "场所类别为必填项")
private String categoryName;
@ExcelProperty(value = "占地面积")
@ -31,6 +35,27 @@ public class IcCityManagementExcel {
@ExcelProperty(value = "地址")
@ColumnWidth(25)
@NotBlank(message = "地址为必填项")
private String address;
@Data
public static class RowRemarkMessage {
@ExcelProperty("场所名称")
@ColumnWidth(20)
private String name;
@ExcelProperty("场所类别")
@ColumnWidth(20)
private String categoryName;
@ExcelProperty("地址")
@ColumnWidth(20)
private String address;
@ColumnWidth(60)
@ExcelProperty("错误信息")
private String errorInfo;
}
}

25
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcPublicServiceExcel.java

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 公共服务图层
*
@ -15,10 +17,12 @@ public class IcPublicServiceExcel {
@ExcelProperty(value = "场所名称")
@ColumnWidth(25)
@NotBlank(message = "场所名称为必填项")
private String name;
@ExcelProperty(value = "场所类别")
@ColumnWidth(20)
@NotBlank(message = "场所类别为必填项")
private String categoryName;
@ExcelProperty(value = "占地面积")
@ -31,6 +35,27 @@ public class IcPublicServiceExcel {
@ExcelProperty(value = "地址")
@ColumnWidth(25)
@NotBlank(message = "地址为必填项")
private String address;
@Data
public static class RowRemarkMessage {
@ExcelProperty("场所名称")
@ColumnWidth(20)
private String name;
@ExcelProperty("场所类别")
@ColumnWidth(20)
private String categoryName;
@ExcelProperty("地址")
@ColumnWidth(20)
private String address;
@ColumnWidth(60)
@ExcelProperty("错误信息")
private String errorInfo;
}
}

24
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcSuperiorResourceExcel.java

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 优势资源管理
*
@ -15,10 +17,12 @@ public class IcSuperiorResourceExcel {
@ExcelProperty(value = "场所名称")
@ColumnWidth(25)
@NotBlank(message = "场所名称为必填项")
private String name;
@ExcelProperty(value = "场所类别")
@ColumnWidth(20)
@NotBlank(message = "场所类别为必填项")
private String categoryName;
@ExcelProperty(value = "占地面积")
@ -31,7 +35,27 @@ public class IcSuperiorResourceExcel {
@ExcelProperty(value = "地址")
@ColumnWidth(25)
@NotBlank(message = "地址为必填项")
private String address;
@Data
public static class RowRemarkMessage {
@ExcelProperty("场所名称")
@ColumnWidth(20)
private String name;
@ExcelProperty("场所类别")
@ColumnWidth(20)
private String categoryName;
@ExcelProperty("地址")
@ColumnWidth(20)
private String address;
@ColumnWidth(60)
@ExcelProperty("错误信息")
private String errorInfo;
}
}

132
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcCityManagementExcelImportListener.java

@ -0,0 +1,132 @@
package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.entity.IcCityManagementEntity;
import com.epmet.excel.IcCityManagementExcel;
import com.epmet.service.CoverageService;
import com.epmet.service.impl.IcCityManagementServiceImpl;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 城市管理excel导入监听器
*/
@Data
@Slf4j
public class IcCityManagementExcelImportListener implements ReadListener<IcCityManagementExcel> {
//最大条数阈值
public static final int MAX_THRESHOLD = 200;
private String currentUserId;
private String currentCustomerId;
private String currentAgencyId;
private String currentAgencyPids;
//数据
private List<IcCityManagementEntity> datas = new ArrayList<>();
//错误项列表
private List<IcCityManagementExcel.RowRemarkMessage> errorRows = new ArrayList<>();
//其他被标记出来的列表列表
private List<IcCityManagementExcel.RowRemarkMessage> otherRows = new ArrayList<>();
private IcCityManagementServiceImpl IcCityManagementServiceImpl;
private CoverageService coverageService;
public IcCityManagementExcelImportListener(String currentUserId, String currentCustomerId, String currentAgencyId, String currentAgencyPids, IcCityManagementServiceImpl IcCityManagementServiceImpl, CoverageService coverageService) {
this.currentUserId = currentUserId;
this.currentCustomerId = currentCustomerId;
this.currentAgencyId = currentAgencyId;
this.currentAgencyPids = currentAgencyPids;
this.IcCityManagementServiceImpl = IcCityManagementServiceImpl;
this.coverageService = coverageService;
}
@Override
public void invoke(IcCityManagementExcel data, AnalysisContext context) {
try {
// 先校验数据
ValidatorUtils.validateEntity(data);
// 去除前后空格
if (StringUtils.isNotBlank(data.getName())) {
data.setName(data.getName().trim());
}
if (StringUtils.isNotBlank(data.getCategoryName())) {
data.setCategoryName(data.getCategoryName().trim());
}
if (StringUtils.isNotBlank(data.getAddress())) {
data.setAddress(data.getAddress().trim());
}
IcCityManagementEntity IcCityManagementEntity = ConvertUtils.sourceToTarget(data, IcCityManagementEntity.class);
IcCityManagementEntity.setSourceType("import");
IcCityManagementEntity.setCategory(data.getCategoryName());
IcCityManagementEntity.setAreaCovered(data.getAreaCoveredName());
IcCityManagementEntity.setCapacity(data.getCapacityName());
datas.add(IcCityManagementEntity);
if (datas.size() == MAX_THRESHOLD) {
execPersist();
}
} catch (Exception e) {
String errorMsg = null;
if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg();
} else {
errorMsg = "未知错误";
log.error("【城市管理导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}
IcCityManagementExcel.RowRemarkMessage errorRow = new IcCityManagementExcel.RowRemarkMessage();
errorRow.setName(data.getName());
errorRow.setCategoryName(data.getCategoryName());
errorRow.setAddress(data.getAddress());
errorRow.setErrorInfo(errorMsg);
errorRows.add(errorRow);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 最后几条达不到阈值,这里必须再调用一次
execPersist();
}
/**
* 执行持久化
*/
private void execPersist() {
try {
List<IcCoverageCategoryDictListResultDTO> dictList = coverageService.dictMap(currentCustomerId, "city_management");
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getCategoryKey, IcCoverageCategoryDictListResultDTO::getCategoryName));
datas.forEach(d -> {
d.setCategory(dictMap.get(d.getCategory()));
});
IcCityManagementServiceImpl.insertBatch(datas);
} finally {
datas.clear();
}
}
/**
* 获取错误行
*
* @return
*/
public List<IcCityManagementExcel.RowRemarkMessage> getErrorRows() {
return errorRows;
}
}

132
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPublicServiceExcelImportListener.java

@ -0,0 +1,132 @@
package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.entity.IcPublicServiceEntity;
import com.epmet.excel.IcPublicServiceExcel;
import com.epmet.service.CoverageService;
import com.epmet.service.impl.IcPublicServiceServiceImpl;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 公共服务管理excel导入监听器
*/
@Data
@Slf4j
public class IcPublicServiceExcelImportListener implements ReadListener<IcPublicServiceExcel> {
//最大条数阈值
public static final int MAX_THRESHOLD = 200;
private String currentUserId;
private String currentCustomerId;
private String currentAgencyId;
private String currentAgencyPids;
//数据
private List<IcPublicServiceEntity> datas = new ArrayList<>();
//错误项列表
private List<IcPublicServiceExcel.RowRemarkMessage> errorRows = new ArrayList<>();
//其他被标记出来的列表列表
private List<IcPublicServiceExcel.RowRemarkMessage> otherRows = new ArrayList<>();
private IcPublicServiceServiceImpl IcPublicServiceServiceImpl;
private CoverageService coverageService;
public IcPublicServiceExcelImportListener(String currentUserId, String currentCustomerId, String currentAgencyId, String currentAgencyPids, IcPublicServiceServiceImpl IcPublicServiceServiceImpl, CoverageService coverageService) {
this.currentUserId = currentUserId;
this.currentCustomerId = currentCustomerId;
this.currentAgencyId = currentAgencyId;
this.currentAgencyPids = currentAgencyPids;
this.IcPublicServiceServiceImpl = IcPublicServiceServiceImpl;
this.coverageService = coverageService;
}
@Override
public void invoke(IcPublicServiceExcel data, AnalysisContext context) {
try {
// 先校验数据
ValidatorUtils.validateEntity(data);
// 去除前后空格
if (StringUtils.isNotBlank(data.getName())) {
data.setName(data.getName().trim());
}
if (StringUtils.isNotBlank(data.getCategoryName())) {
data.setCategoryName(data.getCategoryName().trim());
}
if (StringUtils.isNotBlank(data.getAddress())) {
data.setAddress(data.getAddress().trim());
}
IcPublicServiceEntity IcPublicServiceEntity = ConvertUtils.sourceToTarget(data, IcPublicServiceEntity.class);
IcPublicServiceEntity.setSourceType("import");
IcPublicServiceEntity.setCategory(data.getCategoryName());
IcPublicServiceEntity.setAreaCovered(data.getAreaCoveredName());
IcPublicServiceEntity.setCapacity(data.getCapacityName());
datas.add(IcPublicServiceEntity);
if (datas.size() == MAX_THRESHOLD) {
execPersist();
}
} catch (Exception e) {
String errorMsg = null;
if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg();
} else {
errorMsg = "未知错误";
log.error("【公共服务管理导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}
IcPublicServiceExcel.RowRemarkMessage errorRow = new IcPublicServiceExcel.RowRemarkMessage();
errorRow.setName(data.getName());
errorRow.setCategoryName(data.getCategoryName());
errorRow.setAddress(data.getAddress());
errorRow.setErrorInfo(errorMsg);
errorRows.add(errorRow);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 最后几条达不到阈值,这里必须再调用一次
execPersist();
}
/**
* 执行持久化
*/
private void execPersist() {
try {
List<IcCoverageCategoryDictListResultDTO> dictList = coverageService.dictMap(currentCustomerId, "public_service");
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getCategoryKey, IcCoverageCategoryDictListResultDTO::getCategoryName));
datas.forEach(d -> {
d.setCategory(dictMap.get(d.getCategory()));
});
IcPublicServiceServiceImpl.insertBatch(datas);
} finally {
datas.clear();
}
}
/**
* 获取错误行
*
* @return
*/
public List<IcPublicServiceExcel.RowRemarkMessage> getErrorRows() {
return errorRows;
}
}

134
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcSuperiorResourceExcelImportListener.java

@ -0,0 +1,134 @@
package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.dto.result.IcSuperiorResourceListResultDTO;
import com.epmet.entity.IcSuperiorResourceEntity;
import com.epmet.excel.IcSuperiorResourceExcel;
import com.epmet.service.CoverageService;
import com.epmet.service.impl.IcSuperiorResourceServiceImpl;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 优势资源管理excel导入监听器
*/
@Data
@Slf4j
public class IcSuperiorResourceExcelImportListener implements ReadListener<IcSuperiorResourceExcel> {
//最大条数阈值
public static final int MAX_THRESHOLD = 200;
private String currentUserId;
private String currentCustomerId;
private String currentAgencyId;
private String currentAgencyPids;
//数据
private List<IcSuperiorResourceEntity> datas = new ArrayList<>();
//错误项列表
private List<IcSuperiorResourceExcel.RowRemarkMessage> errorRows = new ArrayList<>();
//其他被标记出来的列表列表
private List<IcSuperiorResourceExcel.RowRemarkMessage> otherRows = new ArrayList<>();
private IcSuperiorResourceServiceImpl icSuperiorResourceServiceImpl;
private CoverageService coverageService;
public IcSuperiorResourceExcelImportListener(String currentUserId, String currentCustomerId, String currentAgencyId, String currentAgencyPids, IcSuperiorResourceServiceImpl icSuperiorResourceServiceImpl, CoverageService coverageService) {
this.currentUserId = currentUserId;
this.currentCustomerId = currentCustomerId;
this.currentAgencyId = currentAgencyId;
this.currentAgencyPids = currentAgencyPids;
this.icSuperiorResourceServiceImpl = icSuperiorResourceServiceImpl;
this.coverageService = coverageService;
}
@Override
public void invoke(IcSuperiorResourceExcel data, AnalysisContext context) {
try {
// 先校验数据
ValidatorUtils.validateEntity(data);
// 去除前后空格
if (StringUtils.isNotBlank(data.getName())) {
data.setName(data.getName().trim());
}
if (StringUtils.isNotBlank(data.getCategoryName())) {
data.setCategoryName(data.getCategoryName().trim());
}
if (StringUtils.isNotBlank(data.getAddress())) {
data.setAddress(data.getAddress().trim());
}
IcSuperiorResourceEntity icSuperiorResourceEntity = ConvertUtils.sourceToTarget(data, IcSuperiorResourceEntity.class);
icSuperiorResourceEntity.setSourceType("import");
icSuperiorResourceEntity.setCategory(data.getCategoryName());
icSuperiorResourceEntity.setAreaCovered(data.getAreaCoveredName());
icSuperiorResourceEntity.setCapacity(data.getCapacityName());
datas.add(icSuperiorResourceEntity);
if (datas.size() == MAX_THRESHOLD) {
execPersist();
}
} catch (Exception e) {
String errorMsg = null;
if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg();
} else {
errorMsg = "未知错误";
log.error("【优势资源管理导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}
IcSuperiorResourceExcel.RowRemarkMessage errorRow = new IcSuperiorResourceExcel.RowRemarkMessage();
errorRow.setName(data.getName());
errorRow.setCategoryName(data.getCategoryName());
errorRow.setAddress(data.getAddress());
errorRow.setErrorInfo(errorMsg);
errorRows.add(errorRow);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 最后几条达不到阈值,这里必须再调用一次
execPersist();
}
/**
* 执行持久化
*/
private void execPersist() {
try {
List<IcCoverageCategoryDictListResultDTO> dictList = coverageService.dictMap(currentCustomerId, "superior_resource");
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getCategoryKey, IcCoverageCategoryDictListResultDTO::getCategoryName));
datas.forEach(d -> {
d.setCategory(dictMap.get(d.getCategory()));
});
icSuperiorResourceServiceImpl.insertBatch(datas);
} finally {
datas.clear();
}
}
/**
* 获取错误行
*
* @return
*/
public List<IcSuperiorResourceExcel.RowRemarkMessage> getErrorRows() {
return errorRows;
}
}

154
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsImportListener.java

@ -0,0 +1,154 @@
package com.epmet.model;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.entity.IcDangerousChemicalsEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.service.CoverageService;
import com.epmet.service.IcDangerousChemicalsService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author zxc
* @DateTime 2022/6/20 10:31
* @DESC
*/
@Data
@Slf4j
public class DangerousChemicalsImportListener extends AnalysisEventListener<DangerousChemicalsModel> {
private IcDangerousChemicalsService icDangerousChemicalsService;
private EpmetAdminOpenFeignClient adminOpenFeignClient;
private CoverageService coverageService;
private AgencyInfoCache agencyInfo;
private List<DangerousChemicalsModel.RowRemarkMessage> errorRows = new ArrayList<>();
private List<DangerousChemicalsModel.RowRemarkMessage> otherRows = new ArrayList<>();
private List<IcDangerousChemicalsEntity> insertList = new ArrayList<>();
public DangerousChemicalsImportListener(AgencyInfoCache agencyInfo, IcDangerousChemicalsService icDangerousChemicalsService, CoverageService coverageService,EpmetAdminOpenFeignClient adminOpenFeignClient){
this.agencyInfo = agencyInfo;
this.icDangerousChemicalsService = icDangerousChemicalsService;
this.coverageService = coverageService;
this.adminOpenFeignClient = adminOpenFeignClient;
}
@Override
public void invoke(DangerousChemicalsModel data, AnalysisContext context) {
Integer rowNum = context.readRowHolder().getRowIndex() + NumConstant.ONE;
if (StringUtils.isBlank(data.getName())){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("企业名称不能为空");
errorRows.add(row);
return;
}
if (StringUtils.isBlank(data.getCategoryName())){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("企业类型不能为空");
errorRows.add(row);
return;
}
if (StringUtils.isBlank(data.getAddress())){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("经营地址不能为空");
errorRows.add(row);
return;
}
if (data.getName().trim().length() > NumConstant.FIFTY){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("企业名称长度超出50字限制");
errorRows.add(row);
}
if (data.getPrincipalMobile().trim().length() > NumConstant.FIFTY){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("联系电话长度超出50字限制");
errorRows.add(row);
}
if (data.getAddress().trim().length() > NumConstant.FIFTY){
DangerousChemicalsModel.RowRemarkMessage row = ConvertUtils.sourceToTarget(data, DangerousChemicalsModel.RowRemarkMessage.class);
row.setRowNum(rowNum);
row.setErrorInfo("经营地址长度超出50字限制");
errorRows.add(row);
}
IcDangerousChemicalsEntity e = ConvertUtils.sourceToTarget(data, IcDangerousChemicalsEntity.class);
e.setSourceType("import");
e.setAgencyId(agencyInfo.getId());
e.setCustomerId(agencyInfo.getCustomerId());
e.setAgencyIdPath(agencyInfo.getPids().equals(NumConstant.ZERO_STR) || agencyInfo.getPids().equals("") ? agencyInfo.getId() : agencyInfo.getPids().concat(":").concat(agencyInfo.getId()));
insertList.add(e);
if (insertList.size() == NumConstant.ONE_HUNDRED){
execPersist();
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
execPersist();
}
/**
* Desc: 数据库插入
*/
private void execPersist() {
try {
if (CollectionUtils.isNotEmpty(insertList)) {
//危化品种类字典
Result<Map<String, String>> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.IC_DANGER_TYPE.getCode());
if (!statusRes.success()){
throw new EpmetException("获取IC_DANGER_TYPE字典表失败");
}
Map<String, String> statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>(16);
//企业类别字典数据
List<IcCoverageCategoryDictListResultDTO> dictList = coverageService.dictMap(agencyInfo.getCustomerId(), "dangerous_chemicals");
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(IcCoverageCategoryDictListResultDTO::getCategoryKey, IcCoverageCategoryDictListResultDTO::getCategoryName));
insertList.forEach(i -> {
statusMap.forEach((k,v) -> {
if (i.getDangerTypeName().equals(v)){
i.setDangerType(k);
}
});
dictMap.forEach((k,v) -> {
if (i.getCategoryName().equals(v)){
i.setCategory(k);
}
});
});
icDangerousChemicalsService.insertBatch(insertList);
}
} finally {
insertList.clear();
}
}
/**
* 获取错误行
* @return
*/
public List<DangerousChemicalsModel.RowRemarkMessage> getErrorRows() {
return errorRows;
}
}

91
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/DangerousChemicalsModel.java

@ -0,0 +1,91 @@
package com.epmet.model;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* @Author zxc
* @DateTime 2022/6/20 10:33
* @DESC
*/
@Data
public class DangerousChemicalsModel {
@NotBlank(message = "企业名称为必填项")
@Length(max = 50,message = "企业名称长度超出50字限制")
@ExcelProperty(value = "企业名称")
private String name;
@NotBlank(message = "企业类型为必填项")
@ExcelProperty(value = "企业类型")
private String categoryName;
@ExcelProperty(value = "周边安全间距(公里)")
private String safeDistance = NumConstant.ZERO_STR;
@ExcelProperty(value = "危化品种类")
private String dangerTypeName;
@ExcelProperty(value = "负责人")
private String principalName;
@Length(max = 50,message = "联系电话长度超出50字限制")
@ExcelProperty(value = "联系电话")
private String principalMobile;
@Length(max = 50,message = "经营地址长度超出50字限制")
@ExcelProperty(value = "经营地址")
private String address;
@ExcelProperty(value = "备注")
private String remark;
@Data
public static class RowRemarkMessage {
@ExcelProperty(value = "行号")
private Integer rowNum;
@ColumnWidth(20)
@ExcelProperty(value = "企业名称")
private String name;
@ColumnWidth(20)
@ExcelProperty(value = "企业类型")
private String categoryName;
@ColumnWidth(20)
@ExcelProperty(value = "周边安全间距(公里)")
private String safeDistance = NumConstant.ZERO_STR;
@ColumnWidth(20)
@ExcelProperty(value = "危化品种类")
private String dangerTypeName;
@ColumnWidth(20)
@ExcelProperty(value = "负责人")
private String principalName;
@ColumnWidth(20)
@ExcelProperty(value = "联系电话")
private String principalMobile;
@ColumnWidth(40)
@ExcelProperty(value = "经营地址")
private String address;
@ColumnWidth(60)
@ExcelProperty(value = "备注")
private String remark;
@ColumnWidth(60)
@ExcelProperty("错误信息")
private String errorInfo;
}
}

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

@ -8,6 +8,8 @@ import com.epmet.dto.form.IcCityManagementListFormDTO;
import com.epmet.dto.result.IcCityManagementListResultDTO;
import com.epmet.entity.IcCityManagementEntity;
import java.nio.file.Path;
/**
* 城市管理图层
*
@ -67,4 +69,5 @@ public interface IcCityManagementService extends BaseService<IcCityManagementEnt
IcCityManagementListResultDTO detail(IcCityManagementListFormDTO formDTO);
void importExcel(Path fileSavePath, String taskId);
}

12
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcDangerousChemicalsService.java

@ -2,12 +2,15 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.IcDangerousChemicalsDTO;
import com.epmet.dto.form.IcDangerousChemicalsAddEditFormDTO;
import com.epmet.dto.form.IcDangerousChemicalsListFormDTO;
import com.epmet.dto.result.IcDangerousChemicalsListResultDTO;
import com.epmet.entity.IcDangerousChemicalsEntity;
import java.nio.file.Path;
/**
* 重点危化品企业
*
@ -67,4 +70,13 @@ public interface IcDangerousChemicalsService extends BaseService<IcDangerousChem
IcDangerousChemicalsListResultDTO detail(IcDangerousChemicalsListFormDTO formDTO);
/**
* Desc: 重点危化品企业导入
* @param filePath
* @param importTaskId
* @author zxc
* @date 2022/6/20 10:26
*/
void dangerousChemicalsImport(Path filePath, String importTaskId, TokenDto tokenDto);
}

4
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPublicServiceService.java

@ -8,6 +8,8 @@ import com.epmet.dto.form.IcPublicServiceListFormDTO;
import com.epmet.dto.result.IcPublicServiceListResultDTO;
import com.epmet.entity.IcPublicServiceEntity;
import java.nio.file.Path;
/**
* 公共服务图层
*
@ -67,5 +69,5 @@ public interface IcPublicServiceService extends BaseService<IcPublicServiceEntit
IcPublicServiceListResultDTO detail(IcPublicServiceListFormDTO formDTO);
void importExcel(Path fileSavePath, String taskId);
}

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

@ -8,6 +8,8 @@ import com.epmet.dto.form.IcSuperiorResourceListFormDTO;
import com.epmet.dto.result.IcSuperiorResourceListResultDTO;
import com.epmet.entity.IcSuperiorResourceEntity;
import java.nio.file.Path;
/**
* 优势资源管理
*
@ -67,4 +69,5 @@ public interface IcSuperiorResourceService extends BaseService<IcSuperiorResourc
IcSuperiorResourceListResultDTO detail(IcSuperiorResourceListFormDTO formDTO);
void importExcel(Path fileSavePath, String taskId);
}

131
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcCityManagementServiceImpl.java

@ -1,34 +1,60 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
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.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcCityManagementDao;
import com.epmet.dto.IcCityManagementDTO;
import com.epmet.dto.form.IcCityManagementAddEditFormDTO;
import com.epmet.dto.form.IcCityManagementListFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.IcCityManagementListResultDTO;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.IcCityManagementEntity;
import com.epmet.excel.IcCityManagementExcel;
import com.epmet.excel.handler.IcCityManagementExcelImportListener;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.CoverageService;
import com.epmet.service.IcCityManagementService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@ -38,10 +64,15 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-06-16
*/
@Service
@Slf4j
public class IcCityManagementServiceImpl extends BaseServiceImpl<IcCityManagementDao, IcCityManagementEntity> implements IcCityManagementService {
@Autowired
private CoverageService coverageService;
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Override
@ -160,5 +191,103 @@ public class IcCityManagementServiceImpl extends BaseServiceImpl<IcCityManagemen
return resultDTO;
}
@Async
@Override
public void importExcel(Path filePath, String importTaskId) {
String userId = null;
try {
userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
//1.获取当前工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", userId));
}
String agencyId = staffInfo.getAgencyId();
IcCityManagementExcelImportListener listener = new IcCityManagementExcelImportListener(userId, customerId, agencyId, staffInfo.getAgencyPIds().replace(":".concat(agencyId), ""), this, coverageService);
EasyExcel.read(filePath.toFile(), IcCityManagementExcel.class, listener).headRowNumber(2).sheet(0).doRead();
String errorDesFileUrl = null;
List<IcCityManagementExcel.RowRemarkMessage> errorRows = listener.getErrorRows();
List<IcCityManagementExcel.RowRemarkMessage> otherRows = listener.getOtherRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_ity_management", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcCityManagementExcel.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e) {
log.error("【城市管理导入】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
if (!result.success()) {
log.error("【城市管理导入】finishImportTask失败");
}
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【城市管理导入】出错:{}", errorMsg);
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("导入失败");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【城市管理导入】导入记录状态修改为'完成'失败");
}
} finally {
// 删除临时文件
if (Files.exists(filePath)) {
try {
Files.delete(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

120
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcDangerousChemicalsServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -8,33 +9,58 @@ import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.DictTypeEnum;
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.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcDangerousChemicalsDao;
import com.epmet.dto.IcDangerousChemicalsDTO;
import com.epmet.dto.form.IcDangerousChemicalsAddEditFormDTO;
import com.epmet.dto.form.IcDangerousChemicalsListFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.IcCityManagementListResultDTO;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.dto.result.IcDangerousChemicalsListResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.IcDangerousChemicalsEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.model.DangerousChemicalsImportListener;
import com.epmet.model.DangerousChemicalsModel;
import com.epmet.service.CoverageService;
import com.epmet.service.IcDangerousChemicalsService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@ -44,12 +70,17 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-06-16
*/
@Service
@Slf4j
public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl<IcDangerousChemicalsDao, IcDangerousChemicalsEntity> implements IcDangerousChemicalsService {
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
@Autowired
private CoverageService coverageService;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Autowired
private OssFeignClient ossFeignClient;
@Override
public PageData<IcDangerousChemicalsListResultDTO> list(IcDangerousChemicalsListFormDTO formDTO) {
@ -182,4 +213,93 @@ public class IcDangerousChemicalsServiceImpl extends BaseServiceImpl<IcDangerous
return resultDTO;
}
/**
* Desc: 重点危化品企业导入
* @param filePath
* @param importTaskId
* @author zxc
* @date 2022/6/20 10:26
*/
@Override
@Async
public void dangerousChemicalsImport(Path filePath, String importTaskId, TokenDto tokenDto) {
try {
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId());
if (null == staffInfo){
throw new EpmetException("查询工作人员信息失败:"+tokenDto.getUserId());
}
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId());
if (null == agencyInfo){
throw new EpmetException("查询所属组织失败:"+staffInfo.getAgencyId());
}
DangerousChemicalsImportListener listener = new DangerousChemicalsImportListener(agencyInfo,this,coverageService,adminOpenFeignClient);
EasyExcel.read(filePath.toFile(), DangerousChemicalsModel.class, listener).headRowNumber(1).sheet(0).doRead();
String errorDesFileUrl = null;
List<DangerousChemicalsModel.RowRemarkMessage> errorRows = listener.getErrorRows();
List<DangerousChemicalsModel.RowRemarkMessage> otherRows = listener.getOtherRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_dangerous_chemicals", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, DangerousChemicalsModel.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e){
log.error("【重点危化品企业导入】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
if (!result.success()) {
log.error("【重点危化品企业导入】finishImportTask失败");
}
}catch (Exception e){
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【重点危化品企业导入】出错:{}", errorMsg);
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(tokenDto.getUserId());
importFinishTaskForm.setResultDesc("导入失败");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【重点危化品企业导入】导入记录状态修改为'完成'失败");
}
} finally {
// 删除临时文件
if (Files.exists(filePath)) {
try {
Files.delete(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

129
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcPublicServiceServiceImpl.java

@ -1,35 +1,60 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
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.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcPublicServiceDao;
import com.epmet.dto.IcPublicServiceDTO;
import com.epmet.dto.form.IcPublicServiceAddEditFormDTO;
import com.epmet.dto.form.IcPublicServiceListFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.dto.result.IcPublicServiceListResultDTO;
import com.epmet.dto.result.IcSuperiorResourceListResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.IcPublicServiceEntity;
import com.epmet.excel.IcPublicServiceExcel;
import com.epmet.excel.handler.IcPublicServiceExcelImportListener;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.CoverageService;
import com.epmet.service.IcPublicServiceService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@ -39,10 +64,15 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-06-16
*/
@Service
@Slf4j
public class IcPublicServiceServiceImpl extends BaseServiceImpl<IcPublicServiceDao, IcPublicServiceEntity> implements IcPublicServiceService {
@Autowired
private CoverageService coverageService;
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Override
@ -162,4 +192,101 @@ public class IcPublicServiceServiceImpl extends BaseServiceImpl<IcPublicServiceD
return resultDTO;
}
@Async
@Override
public void importExcel(Path filePath, String importTaskId) {
String userId = null;
try {
userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
//1.获取当前工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", userId));
}
String agencyId = staffInfo.getAgencyId();
IcPublicServiceExcelImportListener listener = new IcPublicServiceExcelImportListener(userId, customerId, agencyId, staffInfo.getAgencyPIds().replace(":".concat(agencyId), ""), this, coverageService);
EasyExcel.read(filePath.toFile(), IcPublicServiceExcel.class, listener).headRowNumber(2).sheet(0).doRead();
String errorDesFileUrl = null;
List<IcPublicServiceExcel.RowRemarkMessage> errorRows = listener.getErrorRows();
List<IcPublicServiceExcel.RowRemarkMessage> otherRows = listener.getOtherRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_superior_resource", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcPublicServiceExcel.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e) {
log.error("【公共服务管理导入】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
if (!result.success()) {
log.error("【公共服务管理导入】finishImportTask失败");
}
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【公共服务管理导入】出错:{}", errorMsg);
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("导入失败");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【公共服务管理导入】导入记录状态修改为'完成'失败");
}
} finally {
// 删除临时文件
if (Files.exists(filePath)) {
try {
Files.delete(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

130
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcSuperiorResourceServiceImpl.java

@ -1,35 +1,60 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
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.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcSuperiorResourceDao;
import com.epmet.dto.IcSuperiorResourceDTO;
import com.epmet.dto.form.IcSuperiorResourceAddEditFormDTO;
import com.epmet.dto.form.IcSuperiorResourceListFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.IcCoverageCategoryDictListResultDTO;
import com.epmet.dto.result.IcSuperiorResourceListResultDTO;
import com.epmet.dto.result.StaffRoleResultDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.entity.IcSuperiorResourceEntity;
import com.epmet.excel.IcSuperiorResourceExcel;
import com.epmet.excel.handler.IcSuperiorResourceExcelImportListener;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.CoverageService;
import com.epmet.service.IcSuperiorResourceService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@ -39,10 +64,15 @@ import java.util.stream.Collectors;
* @since v1.0.0 2022-06-16
*/
@Service
@Slf4j
public class IcSuperiorResourceServiceImpl extends BaseServiceImpl<IcSuperiorResourceDao, IcSuperiorResourceEntity> implements IcSuperiorResourceService {
@Autowired
private CoverageService coverageService;
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Override
@ -162,4 +192,102 @@ public class IcSuperiorResourceServiceImpl extends BaseServiceImpl<IcSuperiorRes
return resultDTO;
}
@Async
@Override
public void importExcel(Path filePath, String importTaskId) {
String userId = null;
try {
userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
//1.获取当前工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, userId);
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", userId));
}
String agencyId = staffInfo.getAgencyId();
IcSuperiorResourceExcelImportListener listener = new IcSuperiorResourceExcelImportListener(userId, customerId, agencyId, staffInfo.getAgencyPIds().replace(":".concat(agencyId), ""), this, coverageService);
EasyExcel.read(filePath.toFile(), IcSuperiorResourceExcel.class, listener).headRowNumber(2).sheet(0).doRead();
String errorDesFileUrl = null;
List<IcSuperiorResourceExcel.RowRemarkMessage> errorRows = listener.getErrorRows();
List<IcSuperiorResourceExcel.RowRemarkMessage> otherRows = listener.getOtherRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_superior_resource", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcSuperiorResourceExcel.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e) {
log.error("【优势资源管理导入】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
if (!result.success()) {
log.error("【优势资源管理导入】finishImportTask失败");
}
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【优势资源管理导入】出错:{}", errorMsg);
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("导入失败");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【优势资源管理导入】导入记录状态修改为'完成'失败");
}
} finally {
// 删除临时文件
if (Files.exists(filePath)) {
try {
Files.delete(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

5
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/IcEventDTO.java

@ -172,6 +172,11 @@ approved:人工审核通过)
*/
private String auditReason;
/**
* 是否标记难点堵点 0: 1
*/
private String difficultPoint;
/**
* 删除标识:0.未删除 1.已删除
*/

4
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventAddEditFormDTO.java

@ -98,6 +98,10 @@ public class IcEventAddEditFormDTO implements Serializable {
* 处理中processing已办结closed_case
*/
private String status;
/**
* 是否标记难点堵点 0: 1
*/
private String difficultPoint;
/**
* 立项接口入参对象
*/

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/IcEventListFormDTO.java

@ -6,6 +6,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description 迁入管理列表--接口入参
@ -75,4 +76,13 @@ public class IcEventListFormDTO implements Serializable {
private String customerId;
private String staffId;
/**
* 事件ID集合
*/
private List<String> icEventIdList;
/**
* 操作类型 0:取消标记 1:标记
*/
private String type;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/IcEventListResultDTO.java

@ -192,6 +192,16 @@ public class IcEventListResultDTO implements Serializable {
*/
private String imageUrl;
/**
* 是否标记难点堵点 0: 1
*/
private String difficultPoint;
/**
* 是否标记难点堵点 0: 1
*/
private String difficultPointName;
/**
* 事件附件
*/

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/IcEventController.java

@ -491,4 +491,14 @@ public class IcEventController {
return new Result();
}
/**
* @Author sun
* @Description 标记事件为难点堵点
**/
@PostMapping("difficultpointevent")
public Result difficultPointEvent(@RequestBody IcEventListFormDTO formDTO) {
icEventService.difficultPointEvent(formDTO);
return new Result();
}
}

3
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/IcEventDao.java

@ -1,6 +1,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcEventDTO;
import com.epmet.dto.form.IcEventCategoryAnalysisFormDTO;
import com.epmet.dto.form.IcEventListFormDTO;
import com.epmet.dto.form.MyReportIcEvFormDTO;
@ -136,4 +137,6 @@ public interface IcEventDao extends BaseDao<IcEventEntity> {
* @return
*/
Integer getResiReportEventCount(@Param("reportorIdCard") String reportorIdCard);
List<IcEventDTO> getByEventIds(@Param("icEventIdList") List<String> icEventIdList);
}

5
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/IcEventEntity.java

@ -171,4 +171,9 @@ public class IcEventEntity extends BaseEpmetEntity {
*/
private String auditReason;
/**
* 是否标记难点堵点 0: 1
*/
private String difficultPoint;
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/IcEventService.java

@ -220,4 +220,6 @@ public interface IcEventService extends BaseService<IcEventEntity> {
* @Description 工作端事件红点消除
**/
void govRedDot(String icEventId);
void difficultPointEvent(IcEventListFormDTO formDTO);
}

29
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -677,6 +677,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
if (StringUtils.isNotBlank(formDTO.getOperationType()) && StringUtils.isNotBlank(formDTO.getStatus()) && "closed_case".equals(formDTO.getStatus())){
entity.setStatus(formDTO.getStatus());
entity.setCloseCaseTime(new Date());
entity.setDifficultPoint("0");
}
entity.setOperationType(NumConstant.ZERO_STR);
entity.setLatestOperatedTime(new Date());
@ -1196,6 +1197,7 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
entity.setStatus("closed_case");
entity.setCloseCaseTime(new Date());
entity.setLatestOperatedTime(new Date());
entity.setDifficultPoint("0");
baseDao.updateById(entity);
//3.判断新增操作记录
@ -1580,4 +1582,31 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
baseDao.updateById(entity);
}
@Override
public void difficultPointEvent(IcEventListFormDTO formDTO) {
if (CollectionUtils.isEmpty(formDTO.getIcEventIdList())) {
return;
}
//1.校验是否存在已结案事件或已标记事件
if ("1".equals(formDTO.getType())) {
List<IcEventDTO> list = baseDao.getByEventIds(formDTO.getIcEventIdList());
if (!CollectionUtils.isEmpty(list)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "存在已结案或已标记为难点堵点的事件,不允许重复操作", "存在已结案或已标记为难点堵点的事件,不允许重复操作");
}
}
List<IcEventEntity> entityList = new ArrayList<>();
String userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
formDTO.getIcEventIdList().forEach(ev -> {
IcEventEntity entity = new IcEventEntity();
entity.setId(ev);
entity.setDifficultPoint(formDTO.getType());
entity.setUpdatedBy(userId);
entity.setUpdatedTime(new Date());
entityList.add(entity);
});
updateBatchById(entityList);
}
}

2
epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.25__alter_ic_event.sql

@ -0,0 +1,2 @@
ALTER TABLE `ic_event`
ADD COLUMN `DIFFICULT_POINT` varchar(3) NULL DEFAULT '0' COMMENT '是否标记难点堵点 0:否 1:是' AFTER `AUDIT_REASON`;

20
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/IcEventDao.xml

@ -126,6 +126,8 @@
<result property="createdTime" column="created_time" />
<result property="createdUserId" column="created_by" />
<result property="categoryId" column="category_id" />
<result property="difficultPoint" column="difficult_point" />
<result property="difficultPointName" column="difficultPointName" />
<collection property="attachmentList" ofType="com.epmet.dto.result.IcEventListResultDTO$Attachment"
column="icEventId" select="matterListByPartyServiceCenterId"/>
<!--<collection property="attachmentList" ofType="com.epmet.dto.result.IcEventListResultDTO$Attachment" select="">
@ -178,7 +180,9 @@
ie.comment_time,
ie.created_time,
ie.created_by,
iec.category_id
iec.category_id,
ie.difficult_point,
IF(ie.difficult_point = '1','是','否') difficultPointName
FROM
ic_event ie
LEFT JOIN ic_event_category iec ON(ie.id = iec.ic_event_id AND iec.del_flag = '0')
@ -375,4 +379,18 @@
where e.ID_CARD = #{reportorIdCard}
and e.DEL_FLAG = '0'
</select>
<select id="getByEventIds" resultType="com.epmet.dto.IcEventDTO">
SELECT
id
FROM
ic_event
WHERE
del_flag = '0'
<foreach collection="icEventIdList" item="id" open="AND id IN (" separator="," close=")">
#{id}
</foreach>
AND (`status` = 'closed_case' OR difficult_point = '1')<!-- 已结案的或已标记为难点堵点的 -->
</select>
</mapper>
Loading…
Cancel
Save