diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java index 83c4758a63..c95c9f8ade 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java @@ -1,5 +1,6 @@ package com.epmet.commons.tools.config; +import com.alibaba.ttl.TtlRunnable; import com.alibaba.ttl.threadpool.TtlExecutors; import org.slf4j.MDC; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -64,8 +65,9 @@ public class AsyncConfig { executor.setKeepAliveSeconds(keepAliveSeconds); // 设置装饰器,使用MDC将runnable进行装饰,实现日志上下文传递到子线程 executor.setTaskDecorator((Runnable r) -> { + // 1.mdc包装,日志追踪 Map copyOfContextMap = MDC.getCopyOfContextMap(); - return () -> { + Runnable rr = () -> { try { if (copyOfContextMap != null && copyOfContextMap.size() > 0) { MDC.setContextMap(copyOfContextMap); @@ -75,6 +77,9 @@ public class AsyncConfig { MDC.clear(); } }; + + // 2.ttl包装,异步线程上下文透传 + return TtlRunnable.get(rr); }); executor.initialize(); return executor; diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java index 7dc71f336e..4214e77cf8 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/feign/EpmetCommonServiceOpenFeignClient.java @@ -22,7 +22,7 @@ import java.util.Map; * @date 2020/6/4 10:28 */ @FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallbackFactory = EpmetCommonServiceOpenFeignClientFallbackFactory.class) - //@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallbackFactory = EpmetCommonServiceOpenFeignClientFallbackFactory.class, url = "http://192.168.1.132:8103") + //@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallbackFactory = EpmetCommonServiceOpenFeignClientFallbackFactory.class, url = "http://localhost:8103") public interface EpmetCommonServiceOpenFeignClient { /** * @param formDTO @@ -131,7 +131,7 @@ public interface EpmetCommonServiceOpenFeignClient { * @param input * @return */ - @RequestMapping("/commonservice/import-task/create") + @PostMapping("/commonservice/import-task/create") Result createImportTask(@RequestBody ImportTaskCommonFormDTO input); /** diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java index 8af4083542..8b03c4465b 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java +++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ImportTaskController.java @@ -39,7 +39,7 @@ public class ImportTaskController { * @param input * @return */ - @RequestMapping("create") + @PostMapping("create") public Result createTask(@RequestBody ImportTaskCommonFormDTO input) { ValidatorUtils.validateEntity(input, ImportTaskCommonFormDTO.Create.class); String operatorId = input.getOperatorId(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java index 663b425f4e..f6b0df98cc 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java @@ -227,7 +227,7 @@ public class IcTripReportRecordController implements ResultDataResolver { * @return */ @PostMapping("import") - public Result importExcel(MultipartFile file) { + public Result importExcel(@LoginUser TokenDto tokenDto, MultipartFile file) { String userId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); // 1.暂存文件 @@ -271,7 +271,7 @@ public class IcTripReportRecordController implements ResultDataResolver { "行程上报导入失败"); // 3.执行导入 - icTripReportRecordService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); + icTripReportRecordService.execAsyncExcelImport(fileSavePath, rstData.getTaskId(),tokenDto.getCustomerId(),tokenDto.getUserId()); return new Result(); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java index 385d02b171..052b0cb1eb 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcNatImportExcelData.java @@ -21,6 +21,7 @@ public class IcNatImportExcelData { @NotBlank(message = "手机号为必填项") @ExcelProperty("手机号") + @Length(max = 15, message = "手机号长度不正确,应小于15位") private String mobile; @NotBlank(message = "身份证号为必填项") diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcVaccineImportExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcVaccineImportExcelData.java index 6dca8bc4bb..60a83b2582 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcVaccineImportExcelData.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcVaccineImportExcelData.java @@ -23,11 +23,12 @@ public class IcVaccineImportExcelData implements Serializable { @NotBlank(message = "手机号为必填项") @ExcelProperty("手机号") + @Length(max = 15, message = "手机号长度不正确") private String mobile; @NotBlank(message = "身份证号为必填项") @ExcelProperty("身份证号") - @Length(max = 18, message = "身份证号长度不正确,应小于18位") + @Length(max = 18, message = "身份证号长度不正确") private String idCard; @NotNull(message = "接种时间为必填项") diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java index 66ec0d9f9e..ffd9f3db8d 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcTripReportRecordService.java @@ -99,5 +99,5 @@ public interface IcTripReportRecordService extends BaseService imp private IcNatRelationDao icNatRelationDao; @Autowired private IcResiUserDao icResiUserDao; - @Autowired - private UserService userService; + //@Autowired + //private UserService userService; /** * @Author sun @@ -320,7 +320,7 @@ public class IcNatServiceImpl extends BaseServiceImpl imp String app = EpmetRequestHolder.getHeader(AppClientConstant.APP); String client = EpmetRequestHolder.getHeader(AppClientConstant.CLIENT); - LoginUserDetailsResultDTO loginUserDetails = userService.getLoginUserDetails(app, client, userId); + LoginUserDetailsResultDTO loginUserDetails = SpringContextUtils.getBean(UserService.class).getLoginUserDetails(app, client, userId); String agencyId = loginUserDetails.getAgencyId(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 313c18c16d..25ecff6838 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -424,6 +424,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res String idCard = columnAndValues.get("ID_CARD"); + // 执行指定的检查 + specifiedCheck(columnAndValues); + Map existingResiMap = icResiUserDao.selectResiInfoMap(idCard, null); if (existingResiMap == null) { @@ -526,6 +529,33 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res } } + /** + * 执行指定的检查 + * @param columnAndValues + */ + private void specifiedCheck(LinkedHashMap columnAndValues) { + String idCard = columnAndValues.get("ID_CARD"); + String mobile = columnAndValues.get("MOBILE"); + + List errors = new ArrayList<>(); + + if (StringUtils.isNotBlank(idCard) && idCard.length() > 18) { + // 身份证号超长了哦,不可以的 + errors.add("身份证号过长,限制18位"); + } + + if (StringUtils.isNotBlank(mobile) && mobile.length() > 15) { + // 手机号超长也是不可以的 + errors.add("手机号过长,限制15位"); + } + + if (errors.size() > 0) { + // 有错误 + String errorMsg = String.join(";", errors); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), errorMsg, errorMsg); + } + } + /** * 持久化IC居民附加信息 * @param headerColumnWrapper 数据库列包装信息 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 38d58ce001..e2a78205e9 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -120,8 +120,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl natList = icNatService.getNatList(formDTO.getCustomerId(), icResiUser.getIdCard()); + List natList = SpringContextUtils.getBean(IcNatService.class).getNatList(formDTO.getCustomerId(), icResiUser.getIdCard()); result.setNatList(natList); //疫苗接种 List vaccineList = SpringContextUtils.getBean(IcVaccineService.class).getVaccineList(formDTO.getCustomerId(), icResiUser.getIdCard()); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java index 5be16161fc..3766ee7baa 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; 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.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -18,7 +17,10 @@ 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.redis.common.bean.GridInfoCache; -import com.epmet.commons.tools.utils.*; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.FileUtils; +import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IcResiUserConstant; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcTripReportRecordDao; @@ -334,12 +336,8 @@ public class IcTripReportRecordServiceImpl extends BaseServiceImpl entities) { - String currentUserId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID); entities.forEach(e -> { String id = IdWorker.getIdStr(e); e.setId(id); - e.setUpdatedBy(currentUserId); baseDao.insert(e); }); }