|  |  | 
 |  |  | import org.springframework.web.multipart.MultipartFile; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.time.LocalDate; | 
 |  |  | import java.time.LocalDateTime; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getNum()) | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getFactoryId()) | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getUnitId()) | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getMaterialId())){ | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getMaterialId()) | 
 |  |  |                 || Objects.isNull(workPlansSaveDTO.getStartDate()) | 
 |  |  |                 || workPlansSaveDTO.getStartDate().getTime() > workPlansSaveDTO.getPlanDate().getTime()){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |         WorkPlans workPlans = new WorkPlans(); | 
 |  |  | 
 |  |  |                     i.setFinishUnQualifiedNum(Objects.isNull(plansExtListVO.getUnqulifiedNum())?Constants.ZERO:plansExtListVO.getUnqulifiedNum()); | 
 |  |  |                     i.setFinishNum(Objects.isNull(plansExtListVO.getDoneNum())?Constants.ZERO:plansExtListVO.getDoneNum()); | 
 |  |  |                 } | 
 |  |  |                 i.setHasExpire(false); | 
 |  |  |                 i.setStatus(Constants.formatIntegerNum(i.getStatus())); | 
 |  |  |                 if ( !i.getStatus().equals(Constants.WORKPLANHISTORY_TYPE.done) && | 
 |  |  |                         !i.getStatus().equals(Constants.WORKPLANHISTORY_TYPE.close)){ | 
 |  |  |                     if (Objects.nonNull(i.getPlanDate())){ | 
 |  |  |                         i.setHasExpire(DateUtil.toDateLocalDateTime(i.getPlanDate()).toLocalDate().isBefore(LocalDate.now())); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             }); | 
 |  |  |         } | 
 |  |  |         return PageData.from(new PageInfo<>(result)); | 
 |  |  | 
 |  |  |         if(Constants.formatIntegerNum(p.getNum())<=0){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【计划生产数量】数据错误!"); | 
 |  |  |         } | 
 |  |  |         if(p.getStartDate() == null){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【计划开始日期】数据错误,正确格式为:yyyy-MM-dd(如2022-06-07)!"); | 
 |  |  |         } | 
 |  |  |         if(p.getPlanDate() == null){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【计划日期】数据错误,正确格式为:yyyy-MM-dd(如2022-06-07)!"); | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【计划结束日期】数据错误,正确格式为:yyyy-MM-dd(如2022-06-07)!"); | 
 |  |  |         } | 
 |  |  |         if(p.getPlanDate().getTime() < p.getStartDate().getTime()){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【计划开始日期】要早于【计划结束日期】!"); | 
 |  |  |         } | 
 |  |  |         if(StringUtils.isBlank(p.getMaterialCode())){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【产品编码】数据错误!"); | 
 |  |  | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第【"+(index+2)+"】行【生产批次】数据错误!"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Date pDate = DateUtil.getDateFromString(DateUtil.getShortTime(p.getPlanDate()) +" 00:00:00"); | 
 |  |  |         Date nDate =  DateUtil.getDateFromString(DateUtil.getShortTime(DateUtil.getCurrentDate()) +" 00:00:00"); | 
 |  |  |         if( nDate.getTime() > pDate.getTime()){ | 
 |  |  |         LocalDateTime localLocalDateTime = DateUtil.toDateLocalDateTime(p.getStartDate()); | 
 |  |  |         if( localLocalDateTime.toLocalDate().isBefore(LocalDate.now())){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,计划生产日期必须为今天以后的日期!"); | 
 |  |  |         } | 
 |  |  |         p.setMaterialCode(p.getMaterialCode().trim()); |