|
|
@@ -882,22 +882,38 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
Date expirationTime = parseFoodLicenceExpirationDate(ocrResult);
|
|
|
if (expirationTime != null) {
|
|
|
storeInfo.setFoodLicenceExpirationTime(expirationTime);
|
|
|
+ } else if (storeInfoDto.getFoodLicenceExpirationTime() != null) {
|
|
|
+ // OCR解析结果为空时,使用DTO中传入的值
|
|
|
+ storeInfo.setFoodLicenceExpirationTime(storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ log.info("使用DTO中的食品经营许可证到期时间:{}", storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
}
|
|
|
// 设置食品经营许可证状态为"待审核"(字典值2)
|
|
|
storeInfo.setFoodLicenceStatus(2);
|
|
|
storeInfo.setUpdateFoodLicenceTime(new Date());
|
|
|
- log.info("食品经营许可证OCR数据解析成功,到期时间:{}", expirationTime);
|
|
|
+ log.info("食品经营许可证OCR数据解析成功,到期时间:{}", storeInfo.getFoodLicenceExpirationTime());
|
|
|
} catch (Exception e) {
|
|
|
log.error("解析食品经营许可证OCR数据失败", e);
|
|
|
- // 解析失败时仍设置状态为待审核
|
|
|
+ // 解析失败时使用DTO中传入的值
|
|
|
+ if (storeInfoDto.getFoodLicenceExpirationTime() != null) {
|
|
|
+ storeInfo.setFoodLicenceExpirationTime(storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ log.info("OCR解析失败,使用DTO中的食品经营许可证到期时间:{}", storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ }
|
|
|
storeInfo.setFoodLicenceStatus(2);
|
|
|
storeInfo.setUpdateFoodLicenceTime(new Date());
|
|
|
}
|
|
|
} else {
|
|
|
- // 没有OCR记录时,设置状态为待审核
|
|
|
+ // 没有OCR记录时,使用DTO中传入的值
|
|
|
+ if (storeInfoDto.getFoodLicenceExpirationTime() != null) {
|
|
|
+ storeInfo.setFoodLicenceExpirationTime(storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ log.info("无OCR记录,使用DTO中的食品经营许可证到期时间:{}", storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ }
|
|
|
storeInfo.setFoodLicenceStatus(2);
|
|
|
storeInfo.setUpdateFoodLicenceTime(new Date());
|
|
|
}
|
|
|
+ } else if (storeInfoDto.getFoodLicenceExpirationTime() != null) {
|
|
|
+ // 没有食品经营许可证URL,但有传入到期时间时直接使用
|
|
|
+ storeInfo.setFoodLicenceExpirationTime(storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
+ log.info("无食品经营许可证URL,使用DTO中的到期时间:{}", storeInfoDto.getFoodLicenceExpirationTime());
|
|
|
}
|
|
|
|
|
|
// 处理娱乐经营许可证OCR数据(复用营业执照OCR类型,数据库中ocr_type存的是BUSINESS_LICENSE)
|
|
|
@@ -917,22 +933,57 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
Date expirationTime = parseEntertainmentLicenceExpirationDate(ocrResult);
|
|
|
if (expirationTime != null) {
|
|
|
storeInfo.setEntertainmentLicenceExpirationTime(expirationTime);
|
|
|
+ } else if (storeInfoDto.getEntertainmentLicenceExpirationTime() != null) {
|
|
|
+ // OCR解析结果为空时,使用DTO中传入的值
|
|
|
+ storeInfo.setEntertainmentLicenceExpirationTime(storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ log.info("使用DTO中的娱乐经营许可证到期时间:{}", storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
}
|
|
|
// 设置娱乐经营许可证状态为"待审核"(字典值2)
|
|
|
storeInfo.setEntertainmentLicenceStatus(2);
|
|
|
storeInfo.setUpdateEntertainmentLicenceTime(new Date());
|
|
|
- log.info("娱乐经营许可证OCR数据解析成功,到期时间:{}", expirationTime);
|
|
|
+ log.info("娱乐经营许可证OCR数据解析成功,到期时间:{}", storeInfo.getEntertainmentLicenceExpirationTime());
|
|
|
} catch (Exception e) {
|
|
|
log.error("解析娱乐经营许可证OCR数据失败", e);
|
|
|
- // 解析失败时仍设置状态为待审核
|
|
|
+ // 解析失败时使用DTO中传入的值
|
|
|
+ if (storeInfoDto.getEntertainmentLicenceExpirationTime() != null) {
|
|
|
+ storeInfo.setEntertainmentLicenceExpirationTime(storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ log.info("OCR解析失败,使用DTO中的娱乐经营许可证到期时间:{}", storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ }
|
|
|
storeInfo.setEntertainmentLicenceStatus(2);
|
|
|
storeInfo.setUpdateEntertainmentLicenceTime(new Date());
|
|
|
}
|
|
|
} else {
|
|
|
- // 没有OCR记录时,设置状态为待审核
|
|
|
+ // 没有OCR记录时,使用DTO中传入的值
|
|
|
+ if (storeInfoDto.getEntertainmentLicenceExpirationTime() != null) {
|
|
|
+ storeInfo.setEntertainmentLicenceExpirationTime(storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ log.info("无OCR记录,使用DTO中的娱乐经营许可证到期时间:{}", storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ }
|
|
|
storeInfo.setEntertainmentLicenceStatus(2);
|
|
|
storeInfo.setUpdateEntertainmentLicenceTime(new Date());
|
|
|
}
|
|
|
+ } else if (storeInfoDto.getEntertainmentLicenceExpirationTime() != null) {
|
|
|
+ // 没有娱乐经营许可证URL,但有传入到期时间时直接使用
|
|
|
+ storeInfo.setEntertainmentLicenceExpirationTime(storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ log.info("无娱乐经营许可证URL,使用DTO中的到期时间:{}", storeInfoDto.getEntertainmentLicenceExpirationTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算并设置到期时间为三个过期时间的最小值
|
|
|
+ List<Date> expirationTimeList = new ArrayList<>();
|
|
|
+ // 收集所有非空的过期时间
|
|
|
+ if (storeInfoDto.getExpirationTime() != null) {
|
|
|
+ expirationTimeList.add(storeInfoDto.getExpirationTime());
|
|
|
+ }
|
|
|
+ if (storeInfo.getFoodLicenceExpirationTime() != null) {
|
|
|
+ expirationTimeList.add(storeInfo.getFoodLicenceExpirationTime());
|
|
|
+ }
|
|
|
+ if (storeInfo.getEntertainmentLicenceExpirationTime() != null) {
|
|
|
+ expirationTimeList.add(storeInfo.getEntertainmentLicenceExpirationTime());
|
|
|
+ }
|
|
|
+ // 取最小值设置为门店到期时间
|
|
|
+ if (!expirationTimeList.isEmpty()) {
|
|
|
+ Date minExpirationTime = Collections.min(expirationTimeList);
|
|
|
+ storeInfo.setExpirationTime(minExpirationTime);
|
|
|
+ log.info("设置门店到期时间为三个过期时间的最小值:{}", minExpirationTime);
|
|
|
}
|
|
|
|
|
|
storeInfoMapper.insert(storeInfo);
|