Browse Source

Merge remote-tracking branch 'remotes/origin/dev' into pingyin_master

dev
jianjun 4 years ago
parent
commit
12825f6b9a
  1. 2
      epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java
  2. 2
      epmet-auth/src/main/java/com/epmet/AuthApplication.java
  3. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java
  4. 2
      epmet-gateway/src/main/java/com/epmet/GatewayApplication.java
  5. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java
  6. 2
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java
  7. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java
  8. 94
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml
  9. 2
      epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java
  10. 51
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/utils/ImportTaskUtils.java
  11. 2
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java
  12. 2
      epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java
  13. 2
      epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java
  14. 11
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java
  15. 14
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java
  16. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java
  17. 23
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java
  18. 10
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java
  19. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java
  20. 29
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java
  21. 30
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java
  22. 2
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java
  23. 2
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java
  24. 2
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java
  25. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java
  26. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java
  27. 2
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java
  28. 4
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java
  29. 2
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java
  30. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java
  31. 2
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml
  32. 2
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java
  33. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java
  34. 14
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java
  35. 28
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java
  36. 32
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java
  37. 22
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java
  38. 31
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java
  39. 1
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingUnitServiceImpl.java
  40. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java
  41. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java
  42. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java
  43. 2
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java
  44. 2
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java
  45. 6
      epmet-module/oper-customize/oper-customize-server/pom.xml
  46. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java
  47. 16
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormListItemDao.java
  48. 12
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemEntity.java
  49. 46
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormListItemEntity.java
  50. 42
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java
  51. 22
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormListItemDao.xml
  52. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java
  53. 2
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java
  54. 2
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java
  55. 2
      epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java
  56. 2
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java
  57. 2
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java
  58. 2
      epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java
  59. 2
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java
  60. 4
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/controller/ScanController.java
  61. 3
      epmet-openapi/epmet-openapi-scan/src/main/resources/logback-spring.xml
  62. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java
  63. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
  64. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java
  65. 47
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java
  66. 203
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  67. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  68. 33
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java
  69. 16
      pom.xml

2
epmet-admin/epmet-admin-server/src/main/java/com/epmet/AdminApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class AdminApplication {
public static void main(String[] args) {

2
epmet-auth/src/main/java/com/epmet/AuthApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan // 开启Servlet容器扫描,扫描@WebFilter等注解
@ServletComponentScan(basePackages = "com.epmet") // 开启Servlet容器扫描,扫描@WebFilter等注解
public class AuthApplication {
public static void main(String[] args) {

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java

@ -14,6 +14,7 @@ import java.util.List;
public class OptionResultDTO implements Serializable {
private static final long serialVersionUID = 8618231166600518980L;
private String label;
private String code;
private String value;
private String pValue;
private String sysDictDataId;

2
epmet-gateway/src/main/java/com/epmet/GatewayApplication.java

@ -27,7 +27,7 @@ import org.springframework.context.annotation.FilterType;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
//@ServletComponentScan
//@ServletComponentScan(basePackages = "com.epmet")
@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {RedissonConfig.class, ThreadDispatcherConfig.class, ServletExceptionHandler.class}))
public class GatewayApplication {

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/DataAggregatorApplication.java

@ -10,7 +10,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication(scanBasePackages = {"com.epmet"}, exclude = {DataSourceAutoConfiguration.class})
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class DataAggregatorApplication {
public static void main(String[] args) {
SpringApplication.run(DataAggregatorApplication.class, args);

2
epmet-module/data-report/data-report-server/src/main/java/com/epmet/DataReportApplication.java

@ -11,7 +11,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class DataReportApplication {
public static void main(String[] args) {
SpringApplication.run(DataReportApplication.class, args);

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/DataStatsApplication.java

@ -12,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableFeignClients
@SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
@EnableAsync
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class DataStatsApplication {
public static void main(String[] args) {

94
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectDataDao.xml

@ -394,61 +394,61 @@
</foreach>
</select>
<select id="getCheckResult" resultType="com.epmet.dto.screen.result.DataCheckDTO">
SELECT
CUSTOMER_ID,
SELECT
a.CUSTOMER_ID,
AGENCY_ID AS agencyId,
CASE
AGENCY_ID
WHEN '1258587398679126017' THEN
'榆山'
WHEN '1215437824174608386' THEN
'锦水'
WHEN '1234085031077498881' THEN
'孔村'
WHEN 'f8d4a6af53b3fc5991ab1434b6ad39b8' THEN
'东阿镇'
WHEN 'f279343a67653fc20d8333c6b2e4dbee' THEN
'孝直镇'
WHEN 'ea78a8e9252f567517c4a8d60250c714' THEN
'安城镇'
WHEN 'c259c3b1d27f960b9b379fb2886179ba' THEN
'洪范池镇'
WHEN 'd20a7488eedf5bcfd5231c3771bc0e3d' THEN
'玫瑰镇'
ELSE '未知'
END AS agencyName,
PROJECT_TOTAL AS reportCount,
CASE
AGENCY_ID
WHEN '1258587398679126017' THEN
'榆山'
WHEN '1215437824174608386' THEN
'锦水'
WHEN '1234085031077498881' THEN
'孔村'
WHEN 'f8d4a6af53b3fc5991ab1434b6ad39b8' THEN
'东阿镇'
WHEN 'f279343a67653fc20d8333c6b2e4dbee' THEN
'孝直镇'
WHEN 'ea78a8e9252f567517c4a8d60250c714' THEN
'安城镇'
WHEN 'c259c3b1d27f960b9b379fb2886179ba' THEN
'洪范池镇'
WHEN 'd20a7488eedf5bcfd5231c3771bc0e3d' THEN
'玫瑰镇' ELSE '未知'
END AS agencyName,
DATE_ID,
PROJECT_TOTAL AS reportCount,
COUNT( b.PROJECT_ID ) AS count
FROM
(
SELECT
count(*) AS dataCount
*
FROM
screen_project_data
epmet_data_statistical.fact_agency_project_daily
WHERE
1 = 1
AND CUSTOMER_ID = a.CUSTOMER_ID
AND ALL_PARENT_IDS LIKE CONCAT( '%', a.AGENCY_ID, '%' )
AND DEL_FLAG = '0'
AND DATE_FORMAT( PROJECT_CREATE_TIME, '%Y%m%d' ) &lt;= DATE_ID
GROUP BY
AGENCY_ID
ORDER BY
AGENCY_ID
) AS count
FROM
epmet_data_statistical.fact_agency_project_daily a
WHERE
1 = 1
AND del_flag = '0'
AND customer_id IN ( '2fe0065f70ca0e23ce4c26fca5f1d933', '44876154d10d7cb7affd92000f84f833', '46c55cb862d6d5e6d05d2ab61a1cc07e', '6f203e30de1a65aab7e69c058826cd80' )
AND AGENCY_ID IN ( '1234085031077498881', '1215437824174608386', '1258587398679126017', 'c259c3b1d27f960b9b379fb2886179ba', 'd20a7488eedf5bcfd5231c3771bc0e3d', 'ea78a8e9252f567517c4a8d60250c714', 'f279343a67653fc20d8333c6b2e4dbee', 'f8d4a6af53b3fc5991ab1434b6ad39b8' )
<if test='null != dateId and "" != dateId'>
AND DATE_ID = #{dateId}
</if>
<if test='null != startDate and "" != startDate and null != endDate and "" != endDate'>
AND DATE_ID BETWEEN #{startDate} AND #{endDate}
</if>
AND CUSTOMER_ID IN ( '2fe0065f70ca0e23ce4c26fca5f1d933', '44876154d10d7cb7affd92000f84f833', '46c55cb862d6d5e6d05d2ab61a1cc07e', '6f203e30de1a65aab7e69c058826cd80' )
AND AGENCY_ID IN ( '1234085031077498881', '1215437824174608386', '1258587398679126017', 'c259c3b1d27f960b9b379fb2886179ba', 'd20a7488eedf5bcfd5231c3771bc0e3d', 'ea78a8e9252f567517c4a8d60250c714', 'f279343a67653fc20d8333c6b2e4dbee', 'f8d4a6af53b3fc5991ab1434b6ad39b8' )
<if test='null != dateId and "" != dateId'>
AND DATE_ID = #{dateId}
</if>
<if test='null != startDate and "" != startDate and null != endDate and "" != endDate'>
AND DATE_ID BETWEEN #{startDate} AND #{endDate}
</if>
) a
LEFT JOIN (
SELECT
*
FROM
screen_project_data
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID IN ( '2fe0065f70ca0e23ce4c26fca5f1d933', '44876154d10d7cb7affd92000f84f833', '46c55cb862d6d5e6d05d2ab61a1cc07e', '6f203e30de1a65aab7e69c058826cd80' )) b ON b.CUSTOMER_ID = a.CUSTOMER_ID
AND ALL_PARENT_IDS LIKE CONCAT( '%', a.AGENCY_ID, '%' )
AND DATE_FORMAT( PROJECT_CREATE_TIME, '%Y%m%d' ) &lt;= DATE_ID
GROUP BY
CUSTOMER_ID,
AGENCY_ID,
DATE_ID
HAVING
@ -456,7 +456,7 @@
AND reportCount != count
ORDER BY
AGENCY_ID,
DATE_ID DESC
DATE_ID DESC
</select>
<update id="updateHistoryData">

2
epmet-module/epmet-activiti/epmet-activiti-server/src/main/java/com/epmet/ActivitiApplication.java

@ -26,7 +26,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
})
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ActivitiApplication {
public static void main(String[] args) {

51
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/utils/ImportTaskUtils.java

@ -0,0 +1,51 @@
package com.epmet.utils;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
/**
* 导入任务工具类用于创建/完成导入工具
*/
public class ImportTaskUtils implements ResultDataResolver {
/**
* 创建导入任务可能抛出8000异常请考虑捕获异常
* @param originFileName 上传的文件的名称
* @param bizType 业务类型见ImportTaskConstants常量
* @return Result
*/
public static Result<ImportTaskCommonResultDTO> createImportTask(String originFileName, String bizType) {
ImportTaskCommonFormDTO form = new ImportTaskCommonFormDTO();
form.setOriginFileName(originFileName);
form.setOperatorId(EpmetRequestHolder.getHeader(AppClientConstant.USER_ID));
form.setBizType(bizType);
return SpringContextUtils.getBean(EpmetCommonServiceOpenFeignClient.class).createImportTask(form);
}
/**
* 结束导入任务
* @param taskId 任务ID
* @param processStatus 处理状态 见ImportTaskConstants
* @param resultDescFilePath 结果描述文件的路径
* @param resultDesc 结果简要描述文字
* @return Result
*/
public static Result finishImportTask(String taskId, String processStatus, String resultDescFilePath, String resultDesc) {
ImportTaskCommonFormDTO form = new ImportTaskCommonFormDTO();
form.setTaskId(taskId);
form.setOperatorId(EpmetRequestHolder.getHeader(AppClientConstant.USER_ID));
form.setProcessStatus(processStatus);
form.setResultDescFilePath(resultDescFilePath);
form.setResultDesc(resultDesc);
return SpringContextUtils.getBean(EpmetCommonServiceOpenFeignClient.class).finishImportTask(form);
}
}

2
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class EpmetCommonServiceApplication {
public static void main(String[] args) {

2
epmet-module/epmet-demo/epmet-demo-server/src/main/java/com/epmet/DemoApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class DemoApplication {
public static void main(String[] args) {

2
epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/EpmetExtApplication.java

@ -9,7 +9,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class EpmetExtApplication {
public static void main(String[] args) {

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

@ -12,6 +12,7 @@ import com.epmet.dto.result.demand.IcResiDemandDictDTO;
import com.epmet.dto.result.resi.PageVolunteerInfoResultDTO;
import com.epmet.feign.fallback.EpmetHeartOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -92,4 +93,14 @@ public interface EpmetHeartOpenFeignClient {
*/
@PostMapping("/heart/resi/volunteer/modifyVolunteerGrid")
Result modifyVolunteerGrid(@RequestBody VolunteerInfoDTO volunteerInfoDTO);
/**
* 客户初始化数据
* @Param customerId
* @Return {@link Result}
* @Author zhaoqifeng
* @Date 2022/4/14 14:50
*/
@GetMapping("/heart/serviceitem/initCustomer/{customerId}")
Result customerInit(@PathVariable(value = "customerId") String customerId);
}

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

@ -88,4 +88,18 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli
public Result modifyVolunteerGrid(VolunteerInfoDTO volunteerInfoDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "modifyVolunteerGrid", volunteerInfoDTO);
}
/**
* 客户初始化数据
*
* @param customerId
* @Param customerId
* @Return {@link Result}
* @Author zhaoqifeng
* @Date 2022/4/14 14:50
*/
@Override
public Result customerInit(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "customerInit", customerId);
}
}

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/EpmetHeartApplication.java

@ -24,7 +24,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class EpmetHeartApplication {

23
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java

@ -12,13 +12,12 @@ import com.epmet.dto.form.demand.ServiceItemSelectFormDTO;
import com.epmet.dto.form.demand.StatusFormDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.demand.ServiceItemResultDTO;
import com.epmet.service.IcResiDemandDictService;
import com.epmet.service.IcServiceItemDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
@ -33,6 +32,8 @@ public class IcServiceItemDictController {
@Autowired
private IcServiceItemDictService icServiceItemDictService;
@Resource
private IcResiDemandDictService icResiDemandDictService;
/**
@ -85,4 +86,18 @@ public class IcServiceItemDictController {
ValidatorUtils.validateEntity(formDTO,ServiceItemSelectFormDTO.AddUserInternalGroup.class);
return new Result<List<OptionDTO>>().ok(icServiceItemDictService.queryDictListForSelect(formDTO));
}
/**
* 客户初始化数据
* @Param customerId
* @Return {@link Result}
* @Author zhaoqifeng
* @Date 2022/4/14 14:50
*/
@GetMapping("initCustomer/{customerId}")
public Result customerInit(@PathVariable(value = "customerId") String customerId) {
icServiceItemDictService.customerInit(customerId);
icResiDemandDictService.customerInit(customerId);
return new Result();
}
}

10
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcResiDemandDictService.java

@ -20,7 +20,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.demand.DemandCategoryResDTO;
import com.epmet.dto.result.demand.DemandPageResDTO;
@ -147,4 +146,13 @@ public interface IcResiDemandDictService extends BaseService<IcResiDemandDictEnt
* @return
*/
List<DemandCategoryResDTO> queryLatestOrder(String userId, String customerId);
/**
* 客户初始化
* @Param customerId
* @Return
* @Author zhaoqifeng
* @Date 2022/4/14 14:31
*/
void customerInit(String customerId);
}

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java

@ -70,4 +70,13 @@ public interface IcServiceItemDictService extends BaseService<IcServiceItemDictE
* @return
*/
List<OptionDTO> queryDictListForSelect(ServiceItemSelectFormDTO formDTO);
/**
* 客户初始化
* @Param customerId
* @Return
* @Author zhaoqifeng
* @Date 2022/4/14 14:31
*/
void customerInit(String customerId);
}

29
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java

@ -333,5 +333,34 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl<IcResiDemandDic
return new ArrayList<>();
}
/**
* 客户初始化
*
* @param customerId
* @Param customerId
* @Return
* @Author zhaoqifeng
* @Date 2022/4/14 14:31
*/
@Override
public void customerInit(String customerId) {
String defaultCustomerId = "default";
LambdaQueryWrapper<IcResiDemandDictEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiDemandDictEntity::getCustomerId, defaultCustomerId);
List<IcResiDemandDictEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
String uuid = UUID.randomUUID().toString().replaceAll("-","");
item.setId(uuid);
item.setCustomerId(customerId);
item.setCreatedBy("init_user");
item.setCreatedTime(new Date());
item.setUpdatedBy("init_user");
item.setUpdatedTime(new Date());
baseDao.insert(item);
});
}
}
}

30
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java

@ -42,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* 服务事项分类字典表
@ -171,5 +172,34 @@ public class IcServiceItemDictServiceImpl extends BaseServiceImpl<IcServiceItemD
return resultList;
}
/**
* 客户初始化
*
* @param customerId
* @Param customerId
* @Return
* @Author zhaoqifeng
* @Date 2022/4/14 14:31
*/
@Override
public void customerInit(String customerId) {
String defaultCustomerId = "default";
LambdaQueryWrapper<IcServiceItemDictEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcServiceItemDictEntity::getCustomerId, defaultCustomerId);
List<IcServiceItemDictEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
String uuid = UUID.randomUUID().toString().replaceAll("-","");
item.setId(uuid);
item.setCustomerId(customerId);
item.setCreatedBy("init_user");
item.setCreatedTime(new Date());
item.setUpdatedBy("init_user");
item.setUpdatedTime(new Date());
baseDao.insert(item);
});
}
}
}

2
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/JobApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class JobApplication {
public static void main(String[] args) {

2
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java

@ -24,7 +24,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class MessageApplication {

2
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/OssApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class OssApplication {
public static void main(String[] args) {

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java

@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class EpmetPointApplication {
public static void main(String[] args) {

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java

@ -12,7 +12,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class EpmetThirdApplication {
public static void main(String[] args) {

2
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/GovAccessApplication.java

@ -13,7 +13,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
//@EnableConfigurationProperties(value = {DatabaseProperties.class})
public class GovAccessApplication {
public static void main(String[] args) {

4
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/redis/GovCustomerMenuRedis.java

@ -17,6 +17,7 @@
package com.epmet.redis;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
@ -25,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
@ -46,7 +48,7 @@ public class GovCustomerMenuRedis {
* @see com.epmet.enums.MenuTypeEnum
*/
public void setCustomerMenuList(String customerId, Integer type, List<GovMenuDTO> govMenuDTOS) {
if (checkParam(customerId, type)) {
if (checkParam(customerId, type) && !CollectionUtils.isEmpty(govMenuDTOS) && StringUtils.isNotBlank(govMenuDTOS.get(NumConstant.ZERO).getName())) {
String key = RedisKeys.getCustomerMenuList(customerId, type);
redisUtils.set(key, govMenuDTOS, RedisUtils.DEFAULT_EXPIRE);
}

2
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/GovGridApplication.java

@ -15,7 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class GovGridApplication {
public static void main(String[] args) {

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/GovIssueApplication.java

@ -14,7 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class GovIssueApplication {
public static void main(String[] args) {
SpringApplication.run(GovIssueApplication.class, args);

2
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectCategoryDictDao.xml

@ -41,7 +41,7 @@
ORDER BY sort ASC
</select>
<!-- sql递归 查询客户议题项目的分类信息以及递归查询二级分类信息 end-->
<select id="selectCategoryListByCustomer" resultType="com.epmet.dto.IssueProjectCategoryDictDTO">
<select id="selectCategoryListByCustomer" resultType="com.epmet.entity.IssueProjectCategoryDictEntity">
SELECT
ID,
PID,

2
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/GovMineApplication.java

@ -9,7 +9,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class GovMineApplication {
public static void main(String[] args) {

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/GovOrgApplication.java

@ -24,7 +24,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class GovOrgApplication {

14
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/ImportErrorMsgConstants.java

@ -9,14 +9,16 @@ public interface ImportErrorMsgConstants {
String EXIST_ERROR = "数据已存在";
String HOUSE_ERROR = "所属组织、所属网格、所属小区、所属楼栋、单元号、房屋类型、房屋用途、出租的值未填写,或者所填写信息在系统中未找到";
String DOCUMENT_EXIST_ERROR = "文件中存在重复数据";
String BUILDING_ERROR = "所属组织、所属网格、所属小区、楼栋类型、单元数的值未填写或者所填写信息在系统中未找到";
String BELONG_GRID_ERROR = "所属网格的值未填写或者所填写信息在系统中未找到";
String NEIGHBOR_HOOD_ERROR = "所属组织、所属网格、详细地址的值未填写或者所填写信息在系统中未找到";
String BELONG_AGENCY_ERROR = "所属组织的值未填写或者所填写信息在系统中未找到";
String HOUSE_ERROR_NAME = "导入失败的列表-房屋";
String BUILDING_ERROR_NAME = "导入失败的列表-楼宇";
String NEIGHBORHOOD_ERROR_NAME = "导入失败的列表-小区";
String HOUSE_TYPE_ERROR = "房屋类型的值未填写或者所填写信息在系统中未找到";
String BUILDING_TYPE_ERROR = "楼栋类型的值未填写或者所填写信息在系统中未找到";
String NEIGHBORHOOD_TYPE_ERROR = "小区名称的值未填写或者所填写信息在系统中未找到";
}

28
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportBuildingInfoListener.java

@ -30,6 +30,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.epmet.constant.ImportErrorMsgConstants.*;
/**
* @Author zxc
* @DateTime 2022/2/15 10:06 上午
@ -117,7 +119,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
// 应产品要求添加
if (StringUtils.isNotBlank(dto.getType()) && (!dto.getType().equals("商品房") && !dto.getType().equals("自建房")) && !dto.getType().equals("别墅")){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BUILDING_TYPE_ERROR);
return;
}
dto.setType(BuildingTypeEnums.getKeyByValue(dto.getType()));
@ -150,7 +152,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
// 集合里重复的
nums.add(r.getNum());
BuildingInfoModel buildingInfoModel = ConvertUtils.sourceToTarget(r, BuildingInfoModel.class);
disposeErrorMsg(buildingInfoModel,ImportErrorMsgConstants.EXIST_ERROR);
disposeErrorMsg(buildingInfoModel,DOCUMENT_EXIST_ERROR);
r.setExistStatus(true);
r.setAddStatus(true);
}
@ -231,19 +233,19 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
//排除不是本小区的
if (!dto.getNeighborHoodName().equals(neighborHoodGeneralDTO.getNeighborHoodName())){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,"所属小区的值未填写或者所填写信息在系统中未找到");
}else {
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(neighborHoodGeneralDTO.getGridId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BELONG_GRID_ERROR);
return;
}
// 1.排除网格名不一样但小区名一样 2.排除组织不一样,网格一样,小区一样
if ((!gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName())) ||
(!gridInfo.getAgencyName().equals(dto.getAgencyName()) && gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName()))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setNeighborHoodId(formDTO.getOrgId());
@ -252,7 +254,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -273,13 +275,13 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BELONG_GRID_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
}else {
//
dto.setGridId(formDTO.getOrgId());
@ -287,7 +289,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -308,21 +310,21 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
//排除不是本组织的
if (!dto.getAgencyName().equals(agencyName)){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,BELONG_AGENCY_ERROR);
}else {
// 根据组织查询出所有网格,甩出不是本组织下的网格
gridInfos = null == gridInfos ? getGridInfos(formDTO.getOrgId()) : gridInfos;
if (null == gridInfos){
// 组织下确实不存在网格
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
// 根据网格名对比,没有找到的就把行号加入到未执行成功队列中
Object cacheGridName = icHouseRedis.getTemporaryCacheGrid(formDTO.getCustomerId(), formDTO.getUserId(), dto.getGridName());
if (null == cacheGridName){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setGridId(cacheGridName.toString());
@ -330,7 +332,7 @@ public class ImportBuildingInfoListener extends AnalysisEventListener<BuildingIn
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, ImportErrorMsgConstants.BUILDING_ERROR);
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());

32
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportHouseInfoListener.java

@ -36,6 +36,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.epmet.constant.ImportErrorMsgConstants.*;
/**
* @Author zxc
* @DateTime 2022/2/13 1:25 下午
@ -163,7 +165,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
if (StringUtils.isNotBlank(dto.getHouseType()) ){
if( !"楼房".equals(dto.getHouseType()) && !dto.getHouseType().equals("平房") && !dto.getHouseType().equals("别墅") ){
nums.add(num);
disposeErrorMsg(info,"房屋类型的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info,HOUSE_TYPE_ERROR);
return;
}
}
@ -229,7 +231,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
if (!r.getAddStatus()){
nums.add(r.getNum());
info = ConvertUtils.sourceToTarget(r,HouseInfoModel.class);
disposeErrorMsg(info,"文件中存在重复数据");
disposeErrorMsg(info,DOCUMENT_EXIST_ERROR);
r.setExistStatus(true);
r.setAddStatus(true);
}
@ -302,7 +304,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(buildingGeneralDTO.getGridId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_GRID_ERROR);
return;
}
// 排除 1、小区名不一样&&楼栋名一样 2、网格名不一样&&小区名一样&&楼名一样 3、组织名不一样&&网格名一样&&小区名一样&&楼名一样
@ -310,7 +312,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
|| (!gridInfo.getGridName().equals(dto.getGridName())&&buildingGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName()) && buildingGeneralDTO.getBuildingName().equals(dto.getBuildingName()))
|| (!gridInfo.getAgencyName().equals(dto.getAgencyName())&&gridInfo.getGridName().equals(dto.getGridName())&&buildingGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName()) && buildingGeneralDTO.getBuildingName().equals(dto.getBuildingName()))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.HOUSE_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setBuildingId(formDTO.getOrgId());
@ -320,7 +322,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, "所属组织的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -358,14 +360,14 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(neighborHoodGeneralDTO.getGridId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_GRID_ERROR);
return;
}
// 1.排除网格名不一样但小区名一样 2.排除组织不一样,网格一样,小区一样
if ((!gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName())) ||
(!gridInfo.getAgencyName().equals(dto.getAgencyName()) && gridInfo.getGridName().equals(dto.getGridName()) && neighborHoodGeneralDTO.getNeighborHoodName().equals(dto.getNeighborHoodName()))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.HOUSE_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setNeighborHoodId(formDTO.getOrgId());
@ -374,7 +376,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, "所属组织的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -395,13 +397,13 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info, "所属网格的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_GRID_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.HOUSE_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
}else {
//
dto.setGridId(formDTO.getOrgId());
@ -409,7 +411,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, "所属组织的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -430,21 +432,21 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
//排除不是本组织的
if (!dto.getAgencyName().equals(agencyName)){
nums.add(num);
disposeErrorMsg(info,"所属组织的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info,BELONG_AGENCY_ERROR);
}else {
// 根据组织查询出所有网格,甩出不是本组织下的网格
gridInfos = null == gridInfos ? getGridInfos(formDTO.getOrgId()) : gridInfos;
if (null == gridInfos){
// 组织下确实不存在网格
nums.add(num);
disposeErrorMsg(info,"所属网格的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
// 根据网格名对比,没有找到的就把行号加入到未执行成功队列中
Object cacheGridName = icHouseRedis.getTemporaryCacheGrid(formDTO.getCustomerId(), formDTO.getUserId(), dto.getGridName());
if (null == cacheGridName){
nums.add(num);
disposeErrorMsg(info,"所属网格的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setGridId(cacheGridName.toString());
@ -452,7 +454,7 @@ public class ImportHouseInfoListener extends AnalysisEventListener<HouseInfoMode
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info, "所属组织的值未填写或者所填写信息在系统中未找到");
disposeErrorMsg(info, BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());

22
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/ImportNeighborHoodInfoListener.java

@ -33,6 +33,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.epmet.constant.ImportErrorMsgConstants.*;
/**
* @Author zxc
* @DateTime 2022/2/15 2:16 下午
@ -84,11 +86,10 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
}
info = data;
num = num + NumConstant.ONE;
log.info("读数据"+num);
if (StringUtils.isBlank(data.getNeighborHoodName()) ||
StringUtils.isBlank(data.getGridName()) || StringUtils.isBlank(data.getAgencyName()) || StringUtils.isBlank(data.getAddress())){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,NEIGHBORHOOD_TYPE_ERROR);
return;
}
if(StringUtils.isBlank(data.getAgencyName())){
@ -123,7 +124,6 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
if (num%NumConstant.ONE_HUNDRED == NumConstant.ZERO){
finalDispose();
}
log.info("读数据"+num+"完毕");
}
public void finalDispose(){
@ -140,7 +140,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
// 集合里重复的
nums.add(r.getNum());
NeighborHoodInfoModel neighborHoodInfoModel = ConvertUtils.sourceToTarget(r, NeighborHoodInfoModel.class);
disposeErrorMsg(neighborHoodInfoModel, ImportErrorMsgConstants.EXIST_ERROR);
disposeErrorMsg(neighborHoodInfoModel, DOCUMENT_EXIST_ERROR);
r.setExistStatus(true);
r.setAddStatus(true);
}
@ -219,13 +219,13 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(formDTO.getOrgId());
if (null == gridInfo){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
//排除不是本网格的 gridName不一样排除,gridName一样但是agencyName不一样也得排除
if (dto.getGridName().compareTo(gridName) != 0 || (!dto.getAgencyName().equals(gridInfo.getAgencyName()) && dto.getGridName().equals(gridName))){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
}else {
//
dto.setGridId(formDTO.getOrgId());
@ -233,7 +233,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());
@ -253,21 +253,21 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
//排除不是本组织的
if (!dto.getAgencyName().equals(agencyName)){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_AGENCY_ERROR);
}else {
// 根据组织查询出所有网格,甩出不是本组织下的网格
gridInfos = null == gridInfos ? getGridInfos(formDTO.getOrgId()) : gridInfos;
if (null == gridInfos){
// 组织下确实不存在网格
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
// 根据网格名对比,没有找到的就把行号加入到未执行成功队列中
Object cacheGridName = icHouseRedis.getTemporaryCacheGrid(formDTO.getCustomerId(), formDTO.getUserId(), dto.getGridName());
if (null == cacheGridName){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_GRID_ERROR);
return;
}
dto.setGridId(cacheGridName.toString());
@ -275,7 +275,7 @@ public class ImportNeighborHoodInfoListener extends AnalysisEventListener<Neighb
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(dto.getAgencyId());
if (null == agencyInfo){
nums.add(num);
disposeErrorMsg(info,ImportErrorMsgConstants.NEIGHBOR_HOOD_ERROR);
disposeErrorMsg(info,BELONG_AGENCY_ERROR);
return;
}
dto.setPid(agencyInfo.getPid());

31
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/BuildingServiceImpl.java

@ -12,7 +12,9 @@ import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -535,25 +537,26 @@ public class BuildingServiceImpl implements BuildingService {
//如果楼宇单元大于之前的楼宇单元,新增单元
Integer nowUnit= formDTO.getTotalUnitNum();
Integer unit = icBuilding.getTotalUnitNum();
if(nowUnit>=unit){
//新增单元
List<IcBuildingUnitEntity> unitList = new ArrayList<>();
for(int i =unit ;i<nowUnit;i++){
IcBuildingUnitEntity icBuildingUnit= new IcBuildingUnitEntity();
if(nowUnit<unit){
//如果小于,判断是否存在房屋,如果存在就提示不能更改
throw new EpmetException(EpmetErrorCode.ORG_EDIT_FAILED.getCode(),EpmetErrorCode.ORG_EDIT_FAILED.getMsg(),"暂不支持单元号减小");
}
//新增单元
List<OptionResultDTO> units = icBuildingUnitService.getUnitOptions(icBuilding.getId());
Map<String, String> unitMap = units.stream().collect(Collectors.toMap(OptionResultDTO::getCode, OptionResultDTO::getLabel));
List<IcBuildingUnitEntity> unitList = new ArrayList<>();
for (int i = 1; i <= nowUnit; i++) {
String unitNum = String.valueOf(i);
if (!unitMap.containsKey(unitNum)) {
IcBuildingUnitEntity icBuildingUnit = new IcBuildingUnitEntity();
icBuildingUnit.setBuildingId(icBuilding.getId());
icBuildingUnit.setCustomerId(customerId);
icBuildingUnit.setUnitName((i + 1) +"单元");
icBuildingUnit.setUnitNum(String.valueOf(i+1));
icBuildingUnit.setUnitName(unitNum + "单元");
icBuildingUnit.setUnitNum(unitNum);
unitList.add(icBuildingUnit);
}
icBuildingUnitService.insertBatch(unitList);
}else{
//如果小于,判断是否存在房屋,如果存在就提示不能更改
throw new RenException(EpmetErrorCode.ORG_EDIT_FAILED.getCode(),"楼宇单元下存在房屋,无法更新");
}
icBuildingUnitService.insertBatch(unitList);
}
/**

1
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingUnitServiceImpl.java

@ -128,6 +128,7 @@ public class IcBuildingUnitServiceImpl extends BaseServiceImpl<IcBuildingUnitDao
return list.stream().map(item -> {
OptionResultDTO dto = new OptionResultDTO();
dto.setValue(item.getId());
dto.setCode(item.getUnitNum());
dto.setLabel(item.getUnitName());
return dto;
}).collect(Collectors.toList());

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

@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class GovProjectApplication {
public static void main(String[] args) {
SpringApplication.run(GovProjectApplication.class, args);

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/GovVoiceApplication.java

@ -15,7 +15,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class GovVoiceApplication {
public static void main(String[] args) {
SpringApplication.run(GovVoiceApplication.class, args);

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/OpenDataApplication.java

@ -18,7 +18,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
//@ComponentScan(value = { "com.epmet" })
public class OpenDataApplication {
public static void main(String[] args) {

2
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/OperAccessApplication.java

@ -15,7 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class OperAccessApplication {
public static void main(String[] args) {
SpringApplication.run(OperAccessApplication.class, args);

2
epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/OperCrmApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class OperCrmApplication {
public static void main(String[] args) {

6
epmet-module/oper-customize/oper-customize-server/pom.xml

@ -83,6 +83,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-heart-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/OperCustomizeApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class OperCustomizeApplication {
public static void main(String[] args) {

16
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormListItemDao.java

@ -0,0 +1,16 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcFormListItemEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 列表展示项
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-04-14
*/
@Mapper
public interface IcFormListItemDao extends BaseDao<IcFormListItemEntity> {
}

12
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormItemEntity.java

@ -41,7 +41,7 @@ public class IcFormItemEntity extends BaseEpmetEntity {
private String customerId;
/**
*
*
*/
private String areaCode;
@ -135,4 +135,14 @@ public class IcFormItemEntity extends BaseEpmetEntity {
*/
private Integer columnNum;
/**
* 是否为固定列 1动态0固定
*/
private Integer dynamic;
/**
* 是否为多选 1可以多选0单选
*/
private Integer multiSelect;
}

46
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormListItemEntity.java

@ -0,0 +1,46 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 列表展示项
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-04-14
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_form_list_item")
public class IcFormListItemEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* ic_form_item.id
*/
private String formItemId;
/**
* ic_form.form_code举例resi_base_info
*/
private String formCode;
/**
* 表头宽度
*/
private Integer width;
/**
* 排序
*/
private Integer sort;
}

42
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java

@ -24,16 +24,19 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.*;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.FormGroupDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.entity.*;
import com.epmet.feign.EpmetHeartOpenFeignClient;
import com.epmet.redis.CustomerFootBarRedis;
import com.epmet.service.IcFormService;
import lombok.extern.slf4j.Slf4j;
@ -43,6 +46,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@ -72,6 +76,10 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
private IcResiCategoryStatsConfigDao icResiCategoryStatsConfigDao;
@Autowired
private IcResiCategoryWarnConfigDao icResiCategoryWarnConfigDao;
@Resource
private IcFormListItemDao icFormListItemDao;
@Resource
private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient;
/**
* 获取居民信息表单
@ -131,7 +139,9 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
@Override
public String initCustomerFormByCode(String customerId, String areaCode, String formCode) {
CustomerFormResultDTO formResultDTO = baseDao.selectByCode(customerId, formCode);
//客户已经存在了表单的数据
if (formResultDTO != null) {
return "该客户已经存在了表单的数据";
}
String defaultCustomerId = "default";
@ -164,7 +174,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
if (CollectionUtils.isEmpty(itemList)) {
return "默认配置错误";
}
//设置item
//设置ic_form_item
itemList.forEach(item -> {
item.setId(newPrefixed + item.getId());
item.setCustomerId(customerId);
@ -192,6 +202,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icFormItemDao.insert(item);
});
//设置ic_form_item_options
LambdaQueryWrapper<IcFormItemOptionsEntity> wrapperOptions = new LambdaQueryWrapper<>();
wrapperOptions.eq(IcFormItemOptionsEntity::getCustomerId, defaultCustomerId);
wrapperOptions.eq(IcFormItemOptionsEntity::getFormCode, formCode);
@ -209,6 +220,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icFormItemOptionsDao.insert(item);
});
//设置ic_form_item_group
LambdaQueryWrapper<IcFormItemGroupEntity> wrapperGroup = new LambdaQueryWrapper<>();
wrapperGroup.eq(IcFormItemGroupEntity::getCustomerId, defaultCustomerId);
wrapperGroup.eq(IcFormItemGroupEntity::getFormCode, formCode);
@ -225,6 +237,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icFormItemGroupDao.insert(item);
});
//设置ic_form_query_builder
LambdaQueryWrapper<IcFormQueryBuilderEntity> wrapperQuery = new LambdaQueryWrapper<>();
wrapperQuery.eq(IcFormQueryBuilderEntity::getCustomerId, defaultCustomerId);
wrapperQuery.eq(IcFormQueryBuilderEntity::getFormCode, formCode);
@ -241,6 +254,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icFormQueryBuilderDao.insert(item);
});
//设置ic_resi_category_stats_config
LambdaQueryWrapper<IcResiCategoryStatsConfigEntity> wrapperStats = new LambdaQueryWrapper<>();
wrapperStats.eq(IcResiCategoryStatsConfigEntity::getCustomerId, defaultCustomerId);
List<IcResiCategoryStatsConfigEntity> statsConfigList = icResiCategoryStatsConfigDao.selectList(wrapperStats);
@ -255,6 +269,7 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icResiCategoryStatsConfigDao.insert(item);
});
//设置ic_resi_category_warn_config
LambdaQueryWrapper<IcResiCategoryWarnConfigEntity> wrapperWarn = new LambdaQueryWrapper<>();
wrapperWarn.eq(IcResiCategoryWarnConfigEntity::getCustomerId, defaultCustomerId);
List<IcResiCategoryWarnConfigEntity> warnConfigList = icResiCategoryWarnConfigDao.selectList(wrapperWarn);
@ -269,6 +284,31 @@ public class IcFormServiceImpl extends BaseServiceImpl<IcFormDao, IcFormEntity>
icResiCategoryWarnConfigDao.insert(item);
});
//设置ic_form_list_item
LambdaQueryWrapper<IcFormListItemEntity> listItemWapper = new LambdaQueryWrapper<>();
listItemWapper.eq(IcFormListItemEntity::getCustomerId, defaultCustomerId);
listItemWapper.eq(IcFormListItemEntity::getFormCode, formCode);
List<IcFormListItemEntity> listItemList = icFormListItemDao.selectList(listItemWapper);
if (CollectionUtils.isEmpty(listItemList)) {
return "默认配置错误";
}
listItemList.forEach(item -> {
item.setId(newPrefixed + item.getId());
item.setCustomerId(customerId);
item.setFormItemId(newPrefixed + item.getFormItemId());
item.setCreatedBy("init_user");
item.setCreatedTime(new Date());
item.setUpdatedBy("init_user");
item.setUpdatedTime(new Date());
log.debug("stats:"+ JSON.toJSONString(item));
icFormListItemDao.insert(item);
});
//设置ic_service_item_dict和ic_resi_demand_dict
Result result = epmetHeartOpenFeignClient.customerInit(customerId);
if (!result.success()) {
throw new EpmetException(result.getCode(), result.getMsg());
}
return "初始化成功!客户ID:" + customerId + " formCode:" + formCode;
}
}

22
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormListItemDao.xml

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.IcFormListItemDao">
<resultMap type="com.epmet.entity.IcFormListItemEntity" id="icFormListItemMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="formItemId" column="FORM_ITEM_ID"/>
<result property="formCode" column="FORM_CODE"/>
<result property="width" column="WIDTH"/>
<result property="sort" column="SORT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java

@ -24,7 +24,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class ResiGroupApplication {

2
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/ResiGuideApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ResiGuideApplication {
public static void main(String[] args) {

2
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/ResiHallApplication.java

@ -15,7 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ResiHallApplication {
public static void main(String[] args) {

2
epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/ResiHomeApplication.java

@ -15,7 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ResiHomeApplication {
public static void main(String[] args) {

2
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/ResiMineApplication.java

@ -23,7 +23,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ResiMineApplication {
public static void main(String[] args) {

2
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/ResiPartyMemberApplication.java

@ -24,7 +24,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
@EnableAsync
public class ResiPartyMemberApplication {

2
epmet-module/resi-voice/resi-voice-server/src/main/java/com/epmet/ResiVoiceApplication.java

@ -14,7 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ResiVoiceApplication {
public static void main(String[] args) {
SpringApplication.run(ResiVoiceApplication.class, args);

2
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/ScanApplication.java

@ -22,7 +22,7 @@ import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = "com.epmet")
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class ScanApplication {
public static void main(String[] args) {

4
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/controller/ScanController.java

@ -68,7 +68,7 @@ public class ScanController {
/**
* @description 语音异步检测
* @Date 2020/12/9 9:14
* @Date 2020/12/9 9:14
**/
@PostMapping("voiceAsyncScan")
public Result<VoiceAsyncScanTaskResult> voiceAsyncScan(@RequestBody VoiceAsyncScanParam param){
@ -80,7 +80,7 @@ public class ScanController {
* @param taskIds 要查询的异步检测任务的taskId列表数组中的元素个数不超过100个
* @author yinzuomei
* @description 语音异步检测结果查询
* @Date 2020/12/9 11:16
* @Date 2020/12/9 11:16
**/
@PostMapping("voiceResults")
public Result<List<VoiceAsyncScanResult>> voiceResults(@RequestBody List<String> taskIds){

3
epmet-openapi/epmet-openapi-scan/src/main/resources/logback-spring.xml

@ -142,9 +142,8 @@
<springProfile name="dev,test">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>
<logger name="com.epmet.dao" level="DEBUG"/>
<root level="INFO">
<root level="DEBUG">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>

2
epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java

@ -26,7 +26,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
@ServletComponentScan(basePackages = "com.epmet")
public class UserApplication {
public static void main(String[] args) {

9
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java

@ -28,6 +28,7 @@ import com.epmet.dto.result.NatListCommonExcelResultDTO;
import com.epmet.dto.result.NatListResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.IcNatService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
@ -221,12 +222,8 @@ public class IcNatController implements ResultDataResolver {
}
// 2.生成导入任务记录
ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO();
importTaskForm.setOperatorId(userId);
importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_IC_NAT);
importTaskForm.setOriginFileName(originalFilename);
ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm),
ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(
ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.BIZ_TYPE_IC_NAT),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"excel导入核酸检测信息错误",

9
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java

@ -25,6 +25,7 @@ import com.epmet.dto.result.IcVaccineListResultDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.IcVaccineService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
@ -138,12 +139,8 @@ public class IcVaccineController implements ResultDataResolver {
}
// 2.生成导入任务记录
ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO();
importTaskForm.setOperatorId(userId);
importTaskForm.setBizType(ImportTaskConstants.BIZ_TYPE_IC_VACCINE);
importTaskForm.setOriginFileName(originalFilename);
ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(commonServiceOpenFeignClient.createImportTask(importTaskForm),
ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException(
ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.BIZ_TYPE_IC_VACCINE),
ServiceConstant.EPMET_COMMON_SERVICE,
EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),
"excel导入疫苗接种信息错误",

47
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcNatServiceImpl.java

@ -40,6 +40,7 @@ import com.epmet.feign.OssFeignClient;
import com.epmet.service.IcNatService;
import com.epmet.service.IcNoticeService;
import com.epmet.service.UserService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -48,6 +49,7 @@ import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
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;
@ -328,7 +330,6 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
EasyExcel.read(filePath.toFile(), IcNatImportExcelData.class, listener).headRowNumber(2).sheet(0).doRead();
Path errorDescFile = null;
String errorDesFileUrl = null;
List<IcNatImportExcelData.RowRemarkMessage> errorRows = listener.getErrorRows();
@ -340,16 +341,19 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_nat", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
errorDescFile = errorDescDir.resolve(fileName);
String timeMillis = String.valueOf(System.currentTimeMillis());
String fileName = "icnat_import_error_".concat(timeMillis).concat(".xlsx");
FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile());
FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName);
OutputStream os = fileItem.getOutputStream();
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcNatImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
@ -357,38 +361,33 @@ public class IcNatServiceImpl extends BaseServiceImpl<IcNatDao, IcNatEntity> imp
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
if (Files.exists(errorDescFile)) {
Files.delete(errorDescFile);
IOUtils.closeQuietly(os);
try {
fileItem.delete();
} catch (Exception e){
log.error("【核酸检测导入】删除临时描述文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("");
importFinishTaskForm.setResultDescFilePath(errorDesFileUrl);
// 完成导入
Result result = ImportTaskUtils.finishImportTask(importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【核酸检测导入】finishImportTask失败");
log.error("【核酸检测导入】导入记录状态修改为'finished_success'失败");
}
} 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 = ImportTaskUtils.finishImportTask(importTaskId, ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL, null, "导入失败");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【核酸检测导入】导入记录状态修改为'完成'失败");
log.error("【核酸检测导入】导入记录状态修改为'finished_fail'失败");
}
} finally {
// 删除临时文件

203
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -25,6 +25,7 @@ import com.epmet.commons.tools.redis.RedisUtils;
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.IcResiUserDao;
@ -75,10 +76,17 @@ import java.util.stream.Collectors;
@Service
public class IcResiUserImportServiceImpl implements IcResiUserImportService, ResultDataResolver {
public static final List<String> controlGroup1 = Arrays.asList("input", "textarea", "datepicker", "daterange");
public static final List<String> controlGroup2 = Arrays.asList("select", "radio");
/**
* 身份证号列序号
*/
public static final Integer ID_CARD_COLUMN_NO = 9;
/**
* 姓名列序号
*/
public static final Integer ID_NAME_COLUMN_NO = 6;
// 错误和跳过excel行暂存
public static final ThreadLocal<Map<String, List<ErrorRow>>> errorRows = new ThreadLocal<>();
@ -163,9 +171,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private Integer required;
private List<Integer> colIndex;
//private List<String> colContents;
// 单元格内容
// 单元格内容。多选框没有该列,因为多选框对应着excel的多列
private String cellContent;
// 数据库中列的
// 单元格内容对应的数据库中值
private String colValue;
// key:label,value:value
@ -425,11 +433,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
try {
convertColumnWrappers2Map4Persist(itemIdAndColumnWrapper, row, currUserAgencyId, checkBoxOptionColumnIdxAndLabel, columnAndValues, true);
String idCard = columnAndValues.get("ID_CARD");
// 执行指定的检查
specifiedCheck(columnAndValues);
String idCard = columnAndValues.get("ID_CARD");
Map<String, String> existingResiMap = icResiUserDao.selectResiInfoMap(idCard, null);
if (existingResiMap == null) {
@ -596,7 +603,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
if (resiName == null) {
resiName = "";
}
throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("用户【%s】身份证号未填写或格式错误", resiName));
throw new RenException(EpmetErrorCode.IDCARDNO_ERROR.getCode(), String.format("居民【%s】身份证号未填写或格式错误", resiName));
}
// 检查用户是否存在
@ -719,111 +726,195 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
/**
* 将当前行数据转化成LinkedHashMap供后续插入
* @param itemIdAndColumnWrappers 当前行的ColumnWrapper每一个ColumnWrapper元素都是当前行中的一个列,key:itemId
* @param dbMetadataItemIdAndColumnWrappers 当前行的ColumnWrapper每一条都是数据库中的一个列的源数据对应到excel中可能是多个列多选每一个ColumnWrapper元素都是当前行中的一个列,key:itemId
* @param row 当前行数据
* @param currUserAgencyId 当前用户所属机构ID
* @param checkBoxOptionColumnIdxAndLabel 复选框options列表key:列号value复选框中文
* @param target 要将数据放到哪个对象中
* @param target2Insert 要用来insert到db的数据
* @param isPrimaryTable 是否是主表
*/
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> itemIdAndColumnWrappers, Map<Integer, String> row,
private void convertColumnWrappers2Map4Persist(Map<String, ColumnWrapper> dbMetadataItemIdAndColumnWrappers, Map<Integer, String> row,
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel,
LinkedHashMap<String, String> target, boolean isPrimaryTable) {
LinkedHashMap<String, String> target2Insert, boolean isPrimaryTable) {
boolean interupt = false;
// 本行中是否有必填但未填,或者填了但填错了系统中找不到的列,那后面的数据可能就没办法通过前面填写的值去关联查询,因此只做必填检查,提示出来就行了,仁至义尽
boolean hasError = false;
List<String> errorColumnNames = new LinkedList<>();
String notFoundColumnName = null;
List<String> emptyColumnNames = new ArrayList<>();
for (Map.Entry<String, ColumnWrapper> itemIdAndColumnWrapper : itemIdAndColumnWrappers.entrySet()) {
// 这两列要提前放进去,因为有的列未填写的话,会抛异常出去,需要用这两列来做描述
target2Insert.put("ID_CARD", row.get(ID_CARD_COLUMN_NO));
target2Insert.put("NAME", row.get(ID_NAME_COLUMN_NO));
String itemId = itemIdAndColumnWrapper.getKey();
ColumnWrapper columnWrapper = itemIdAndColumnWrapper.getValue();
for (Map.Entry<String, ColumnWrapper> dbColumnMetadata : dbMetadataItemIdAndColumnWrappers.entrySet()) {
if ("input".equals(columnWrapper.getItemType())
|| "textarea".equals(columnWrapper.getItemType())
|| "datepicker".equals(columnWrapper.getItemType())
|| "daterange".equals(columnWrapper.getItemType())
) {
String currentItemId = dbColumnMetadata.getKey();
ColumnWrapper columnWrapper = dbColumnMetadata.getValue();
// "input", "textarea", "datepicker", "daterange"
if (controlGroup1.contains(columnWrapper.getItemType())) {
// 输入的控件,不会横跨多个单元格,所以只取一列就可以了
String cellContent = row.get(columnWrapper.getColIndex().get(0));
columnWrapper.setCellContent(cellContent);
columnWrapper.setColValue(cellContent);
} else if ("select".equals(columnWrapper.getItemType())
|| "radio".equals(columnWrapper.getItemType())){
// 必填检查
boolean hasEmptyError = requiredButEmptyCheck(isPrimaryTable, columnWrapper);
if (hasEmptyError) {
emptyColumnNames.add(columnWrapper.combinedLabel);
hasError = true;
continue;
}
if (hasError) {
continue;
}
// "select", "radio"
} else if (controlGroup2.contains(columnWrapper.getItemType())){
String optionSourceType = columnWrapper.getOptionSourceType();
// 取单元格的内容
String cellContent = row.get(columnWrapper.getColIndex().get(0));
columnWrapper.setCellContent(cellContent);
if ("local".equals(optionSourceType)) {
// 必填检查
boolean hasEmptyError = requiredButEmptyCheck(isPrimaryTable, columnWrapper);
if (hasEmptyError) {
emptyColumnNames.add(columnWrapper.combinedLabel);
hasError = true;
continue;
}
if (hasError) {
continue;
}
if ("local".equals(columnWrapper.getOptionSourceType())) {
// 根据单元格内容,取到指定的option
Map<String, String> options = columnWrapper.getOptions();
String colValue = options.get(cellContent);
Map<String, String> itemOptions = columnWrapper.getOptions();
String colValue = itemOptions.get(cellContent);
columnWrapper.setColValue(colValue);
} else {
// remote类型。优先从缓存取
String fullUri = columnWrapper.getOptionSourceValue();
String[] uriParts = splitOptionSourceUrl(fullUri);
String pureUri = uriParts[0];
String superItemId = uriParts[1];
String superColumValue;
String superColumnValue;
// 获取父item的值
if (StringUtils.isNotBlank(superItemId)) {
superColumValue = itemIdAndColumnWrappers.get(superItemId).getColValue();
superColumnValue = dbMetadataItemIdAndColumnWrappers.get(superItemId).getColValue();
} else {
superColumValue = "-";
superColumnValue = "-";
}
Map<String, Map<String, String>> superOptions = itemIdAndOptionsCache.getIfPresent(itemId);
// 通过接口调用,计算出colValue,放到columnWrapper中
Map<String, Map<String, String>> superOptions = itemIdAndOptionsCache.getIfPresent(currentItemId);
if (superOptions != null && superOptions.size() > 0) {
Map<String, String> options = superOptions.get(superColumValue);
Map<String, String> options = superOptions.get(superColumnValue);
if (options == null || options.size() == 0) {
options = listRemoteOptions(pureUri, superItemId, itemIdAndColumnWrappers, currUserAgencyId, "saveorupdate");
superOptions.put(superColumValue, options);
options = listRemoteOptions(pureUri, superItemId, dbMetadataItemIdAndColumnWrappers, currUserAgencyId, "saveorupdate");
superOptions.put(superColumnValue, options);
}
String colValue = options.get(cellContent);
columnWrapper.setColValue(colValue);
} else {
Map<String, String> options = listRemoteOptions(pureUri, superItemId, itemIdAndColumnWrappers, currUserAgencyId, "saveorupdate");
// 父item的options。例如当前遍历的是小区列,那查出来的就是网格下的小区
// 然后把 <currentItemId:<superItem:usperOptions>> 放到缓存里
Map<String, String> options = listRemoteOptions(pureUri, superItemId, dbMetadataItemIdAndColumnWrappers, currUserAgencyId, "saveorupdate");
superOptions = new HashMap<>();
superOptions.put(superColumValue, options);
itemIdAndOptionsCache.put(itemId, superOptions);
superOptions.put(superColumnValue, options);
itemIdAndOptionsCache.put(currentItemId, superOptions);
String colValue = options.get(cellContent);
columnWrapper.setColValue(colValue);
}
}
} else if ("checkbox".equals(columnWrapper.getItemType())) {
//多选框没有具体的cellContent,因为多选框对应着excel的多列。并且复选框,为空就是否,所以不需要做必填检查
String checkBoxColValue = getCheckBoxColValue(columnWrapper, row, checkBoxOptionColumnIdxAndLabel);
columnWrapper.setColValue(checkBoxColValue);
}
// requiredColumns中的值不在排除字段中 && 是必填 && 未填写
if (isPrimaryTable) {
// 主表没有需要排除的列
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) {
interupt = true;
errorColumnNames.add(columnWrapper.combinedLabel);
}
} else {
// 从表需要排除掉一些不必要校验的列
if (!subTableNeedlessColumns.contains(columnWrapper.columnName)
&& columnWrapper.getRequired() == 1
&& StringUtils.isBlank(columnWrapper.colValue)) {
interupt = true;
errorColumnNames.add(columnWrapper.combinedLabel);
if (hasError) {
continue;
}
}
target.put(columnWrapper.columnName, columnWrapper.colValue);
// 填了,但找不到对应数据的检查
boolean hasNotFoundError = notFoundCheck(isPrimaryTable, columnWrapper);
if (hasNotFoundError) {
notFoundColumnName = columnWrapper.combinedLabel;
hasError = true;
}
target2Insert.put(columnWrapper.columnName, columnWrapper.colValue);
}
if (hasError) {
StringBuilder sb = new StringBuilder();
// 组织报错信息
if (CollectionUtils.isNotEmpty(emptyColumnNames)) {
sb.append(String.join(",", emptyColumnNames)).append("的值未填写;");
}
if (StringUtils.isNotBlank(notFoundColumnName)) {
sb.append(notFoundColumnName).append("填写的值在系统中未找到");
}
throw new EpmetException(sb.toString());
}
}
/**
* 必填但是用户没填的放到list中
* @param isPrimaryTable 是否是主表true是主表false从表
* @param columnWrapper 数据库列包装对象
*/
public boolean requiredButEmptyCheck(Boolean isPrimaryTable, ColumnWrapper columnWrapper) {
// requiredColumns中的值不在排除字段中 && 是必填 && 未填写
if (isPrimaryTable) {
// 主表没有需要排除的列
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.cellContent)) {
return true;
}
} else {
// 从表需要排除掉一些不必要校验的列
if (!subTableNeedlessColumns.contains(columnWrapper.columnName)
&& columnWrapper.getRequired() == 1
&& StringUtils.isBlank(columnWrapper.cellContent)) {
return true;
}
}
if (interupt) {
throw new RenException(String.join(",", errorColumnNames) + "的值未填写,或者所填写信息在系统中未找到");
return false;
}
/**
* 必填并且在系统中没找到值的放到list中
* @param isPrimaryTable 是否是主表true是主表false从表
* @param columnWrapper 数据库列包装对象
*/
public boolean notFoundCheck(Boolean isPrimaryTable, ColumnWrapper columnWrapper) {
// requiredColumns中的值不在排除字段中 && 是必填 && 未填写
if (isPrimaryTable) {
// 主表没有需要排除的列
if (columnWrapper.getRequired() == 1 && StringUtils.isBlank(columnWrapper.colValue)) {
return true;
}
} else {
// 从表需要排除掉一些不必要校验的列
if (!subTableNeedlessColumns.contains(columnWrapper.columnName)
&& columnWrapper.getRequired() == 1
&& StringUtils.isBlank(columnWrapper.colValue)) {
return true;
}
}
return false;
}
/**
@ -1154,8 +1245,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
// 文件名
String resultDescFileName = UUID.randomUUID().toString().concat(".xls");
FileItemFactory factory = new DiskFileItemFactory(16, null);
FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, resultDescFileName);
FileItem fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, FileUtils.getAndCreateDirUnderEpmetFilesDir("temp").toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, resultDescFileName);
OutputStream os = fileItem.getOutputStream();
Result<UploadImgResultDTO> uploadResult = null;
try {

13
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -1036,14 +1036,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
OwnerRelationResultDTO result = new OwnerRelationResultDTO();
//获取用户信息
IcResiUserEntity user = baseDao.selectById(userId);
//获取用户所在家庭的户主
Result<IcHouseDTO> houseResult = govOrgOpenFeignClient.get(user.getHomeId());
if (!houseResult.success()) {
throw new RenException(houseResult.getCode(),houseResult.getMsg());
}
result.setOwnerName(houseResult.getData().getOwnerName());
result.setOwnerName("");
//获取用户所在家庭里所有人员信息
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getHomeId, user.getHomeId());
@ -1057,6 +1050,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (userId.equals(item.getId())) {
bean.setIsSelf(NumConstant.ONE_STR);
}
//如果与房主的关系是本人,则这个人就是房主
if (RelationshipEnum.SELF.getCode().equals(item.getYhzgx())) {
result.setOwnerName(item.getName());
}
return bean;
}).collect(Collectors.toList());
result.setUserList(userList);

33
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java

@ -37,6 +37,7 @@ import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.IcVaccineService;
import com.epmet.service.UserService;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
@ -45,6 +46,7 @@ import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
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;
@ -177,7 +179,6 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
EasyExcel.read(filePath.toFile(), IcVaccineImportExcelData.class, listener).headRowNumber(2).sheet(0).doRead();
Path errorDescFile = null;
String errorDesFileUrl = null;
List<IcVaccineImportExcelData.RowRemarkMessage> errorRows = listener.getErrorRows();
@ -189,16 +190,17 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir("ic_vaccine", "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
errorDescFile = errorDescDir.resolve(fileName);
FileItemFactory factory = new DiskFileItemFactory(16, errorDescDir.toFile());
FileItem fileItem = factory.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), true, fileName);
OutputStream os = fileItem.getOutputStream();
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcNatImportExcelData.RowRemarkMessage.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
@ -208,20 +210,23 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
}
} finally {
if (Files.exists(errorDescFile)) {
Files.delete(errorDescFile);
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e){
log.error("【疫苗接种导入】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("");
importFinishTaskForm.setResultDescFilePath(errorDesFileUrl);
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【疫苗接种导入】finishImportTask失败");
}

16
pom.xml

@ -97,11 +97,6 @@
</dependencyManagement>
<repositories>
<!--<repository>
<id>mvnrepo</id>
<name>jianjun gitee</name>
<url>https://gitee.com/jianjun4833/mvnrepo/blob/master/</url>
</repository>-->
<repository>
<id>public</id>
<name>aliyun nexus</name>
@ -110,6 +105,11 @@
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>epmet</id>
<name>maven-releases</name>
<url>https://nexus.elinkservice.cn/repository/maven-releases/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
@ -124,5 +124,11 @@
</snapshots>
</pluginRepository>
</pluginRepositories>
<distributionManagement>
<repository>
<id>epmet</id>
<url>https://nexus.elinkservice.cn/repository/maven-releases/</url>
</repository>
</distributionManagement>
</project>

Loading…
Cancel
Save