食谱计划更新

This commit is contained in:
xiezhijun 2021-03-13 15:40:34 +08:00
parent c4cb3e2180
commit 9d03073763

@ -198,7 +198,6 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
}
//更新
if(updateList.size() > 0){
System.out.println("更新数量:"+updateList.size());
for (SysRecipesPlan plan : updateList) {
sysRecipesPlanMapper.updateSysRecipesPlan(plan);
}
@ -242,16 +241,18 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
//判断是否大于服务到期时间
if (ChronoUnit.DAYS.between(planEndDate, serverEndDate) <= 0) {
planEndDate = serverEndDate;
breakFlag = false;
}
String[] pauseResult = dealPlanPause(planStartDate, planEndDate, pauseList);
//开始时间变更为暂停结束之后的日期因为暂停开始时间与食谱计划开始时间相同
if(StringUtils.isNotEmpty(pauseResult[0])){
planStartDate = DateUtils.stringToLocalDate(pauseResult[0],"yyyyMMdd");
planEndDate = DateUtils.stringToLocalDate(pauseResult[1],"yyyyMMdd");
//根据暂停结果返回的数据更新计划开始结束时间
planStartDate = DateUtils.stringToLocalDate(pauseResult[0],"yyyyMMdd");
planEndDate = DateUtils.stringToLocalDate(pauseResult[1],"yyyyMMdd");
//判断是否大于服务到期时间
if (ChronoUnit.DAYS.between(planEndDate, serverEndDate) <= 0) {
planEndDate = serverEndDate;
breakFlag = false;
}
//加上暂停时间
planEndDate = planEndDate.plusDays(Integer.parseInt(pauseResult[2]));
//暂停日期
sysRecipesPlan.setPauseDate(pauseResult[3]);
sysRecipesPlan.setStartDate(DateUtils.localDateToDate(planStartDate));
sysRecipesPlan.setEndDate(DateUtils.localDateToDate(planEndDate));
sysRecipesPlan.setOrderId(sysOrder.getOrderId());
@ -259,10 +260,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
sysRecipesPlan.setOutId(Md5Utils.hash(String.valueOf(sysOrder.getCusId())));
oldStartNumDay += 1;
sysRecipesPlan.setStartNumDay(oldStartNumDay);
oldStartNumDay += 6;
long dayNumber = ChronoUnit.DAYS.between(planStartDate, planEndDate);
oldStartNumDay += dayNumber > 6 ? 6 : dayNumber;
sysRecipesPlan.setEndNumDay(oldStartNumDay);
//暂停日期
sysRecipesPlan.setPauseDate(pauseResult[3]);
//添加暂停范围内的日期
planList.add(sysRecipesPlan);
}while (breakFlag);
@ -285,33 +285,37 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService {
if (pauseList != null && pauseList.size() > 0) {
//每条暂停时间的范围不会重叠在添加暂停时做了限制
for (SysOrderPause sysOrderPause : pauseList) {
LocalDate pauseStartDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseStartDate());
LocalDate pauseEndDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseEndDate());
if (ChronoUnit.DAYS.between(pauseEndDate, planStartDate) > 0 || ChronoUnit.DAYS.between(planEndDate, pauseStartDate) > 0) {
continue;
}
if (ChronoUnit.DAYS.between(pauseStartDate, planStartDate) > 0) {
pauseStartDate = planStartDate;
}
if (ChronoUnit.DAYS.between(planEndDate, pauseEndDate) > 0) {
pauseEndDate = planEndDate;
}
//判断暂停记录是否从食谱计划开始时间开始的
if(ChronoUnit.DAYS.between(pauseStartDate, planStartDate) == 0){
//记录该条暂停记录结束之后的第一天日期如果两条记录连着则取最后暂停结束之后的第一天
if("".equals(result[0]) || result[0].equals(DateUtils.localDateToString(pauseStartDate,"yyyyMMdd"))){
while(true){
LocalDate pauseStartDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseStartDate());
LocalDate pauseEndDate = DateUtils.dateToLocalDate(sysOrderPause.getPauseEndDate());
if (ChronoUnit.DAYS.between(pauseEndDate, planStartDate) > 0 || ChronoUnit.DAYS.between(planEndDate, pauseStartDate) > 0) {
break;
}
if (ChronoUnit.DAYS.between(pauseStartDate, planStartDate) > 0) {
pauseStartDate = planStartDate;
}
if (ChronoUnit.DAYS.between(planEndDate, pauseEndDate) > 0) {
pauseEndDate = planEndDate;
}
//判断暂停记录是否从食谱计划开始时间开始的
if(ChronoUnit.DAYS.between(pauseStartDate, planStartDate) == 0){
planStartDate = pauseEndDate.plusDays(1);
planEndDate = planStartDate.plusDays(6);
result[0] = DateUtils.localDateToString(planStartDate,"yyyyMMdd");
result[1] = DateUtils.localDateToString(planEndDate,"yyyyMMdd");
}else{
planEndDate = planEndDate.plusDays(ChronoUnit.DAYS.between(pauseStartDate, pauseEndDate) + 1);
pauseDateString.addAll(getPauseDateString(pauseStartDate, pauseEndDate));
break;
}
}else{
pauseDay += ChronoUnit.DAYS.between(pauseStartDate, pauseEndDate) + 1;
pauseDateString.addAll(getPauseDateString(pauseStartDate, pauseEndDate));
}
/*System.out.println("---------------------------------------");
System.out.println(DateUtils.localDateToString(planStartDate, "yyyy-MM-dd"));
System.out.println(DateUtils.localDateToString(planEndDate, "yyyy-MM-dd"));
System.out.println("---------------------------------------");*/
}
}
result[2] = pauseDay+"";
result[0] = DateUtils.localDateToString(planStartDate,"yyyyMMdd");
result[1] = DateUtils.localDateToString(planEndDate,"yyyyMMdd");
result[2] = pauseDay + "";
result[3] = pauseDateString.size() > 0 ? StringUtils.join(pauseDateString,"|") : "";
return result;
}