demand: TMS-运输管理-货物组批次-新增提醒:发出时间的选择需要在规则时间以内
This commit is contained in:
parent
c2b1f32c1c
commit
7df28c0e47
@ -11,6 +11,7 @@
|
||||
package com.xdadan.erp.emis.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.ArrayList;
|
||||
@ -444,6 +445,36 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
|
||||
if (CollectionUtil.isEmpty(filterList)) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, emisWaybill.getBillCode() + "组批次起始网点、下一网点、供应商与规则不匹配");
|
||||
}
|
||||
// 过滤有效期内的规则
|
||||
Date etd = oldSiteBatch.getEtd();
|
||||
if (etd != null) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
List<String> validRanges = filterList.stream().map(i -> {
|
||||
Date startDate = i.getStartDate();
|
||||
Date endDate = i.getEndDate();
|
||||
if (startDate == null || endDate == null) {
|
||||
return null;
|
||||
}
|
||||
return sdf.format(startDate) + "~" + sdf.format(endDate);
|
||||
}).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
|
||||
filterList = filterList.stream()
|
||||
.filter(i -> {
|
||||
Date startDate = i.getStartDate();
|
||||
Date endDate = i.getEndDate();
|
||||
if (startDate == null || endDate == null) {
|
||||
return false;
|
||||
}
|
||||
// 判断etd是否在有效期内:startDate <= etd < endDate
|
||||
return !etd.before(startDate) && etd.before(endDate);
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(filterList)) {
|
||||
String rangeMsg = CollectionUtil.isEmpty(validRanges) ? "暂无可用时间范围"
|
||||
: String.join(",", validRanges);
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL,
|
||||
emisWaybill.getBillCode() + "组批次发出时间不在规则有效期内(规则时间范围:" + rangeMsg + "),请选择正确的时间或联系it处理");
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user