食谱计划更新
This commit is contained in:
		@@ -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;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user