|
@@ -18,6 +18,8 @@ import java.util.Comparator;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.function.Supplier;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -45,14 +47,23 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
|
|
|
this.baseMapper.updateById(itdmGongdanDetail);
|
|
|
|
|
|
List<ItdmGongdanDetail> list = baseMapper.
|
|
|
- selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class)
|
|
|
- .eq(ItdmGongdanDetail::getWoId, data.getWoId()).isNull(ItdmGongdanDetail::getShijiEndTime)
|
|
|
+ selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class));
|
|
|
+
|
|
|
+
|
|
|
+ List<ItdmGongdanDetail> list1 = baseMapper.
|
|
|
+ selectList(Wrappers.lambdaQuery(ItdmGongdanDetail.class).eq(ItdmGongdanDetail::getWoId, data.getWoId()).isNull(ItdmGongdanDetail::getShijiEndTime)
|
|
|
.isNull(ItdmGongdanDetail::getShijiStartTime).isNull(ItdmGongdanDetail::getShijiWorkDate));
|
|
|
|
|
|
|
|
|
+ if (list1.size() > 0) {
|
|
|
+ ItdmGongdanMaster master = new ItdmGongdanMaster();
|
|
|
+ master.setId(data.getWoId());
|
|
|
+ master.setShijiStartDate(getMin(list, simpleDate, simpleDate1));
|
|
|
+ masterMapper.updateById(master);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- if (list.size() <= 1) {
|
|
|
+ if (list.size() > 0 && list1.size() <= 1) {
|
|
|
// todo
|
|
|
ItdmGongdanMaster master = new ItdmGongdanMaster();
|
|
|
master.setId(data.getWoId());
|
|
@@ -68,22 +79,29 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
|
|
|
private Date getMax(List<ItdmGongdanDetail> list, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
|
|
|
|
|
|
|
|
|
- return list.stream().map(i -> getDateFormat(i, simpleDate, simpleDate1)).max(Comparator.reverseOrder()).orElse(null);
|
|
|
+ return list.stream()
|
|
|
+ .filter(i -> i.getShijiWorkDate() != null && i.getShijiEndTime() != null)
|
|
|
+
|
|
|
+ .map(i -> getDateFormat(i, i::getShijiEndTime, simpleDate, simpleDate1)).max(Comparator.reverseOrder()).orElse(null);
|
|
|
}
|
|
|
|
|
|
|
|
|
private Date getMin(List<ItdmGongdanDetail> list, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
|
|
|
|
|
|
|
|
|
- return list.stream().map(i -> getDateFormat(i, simpleDate, simpleDate1)).min(Comparator.reverseOrder()).orElse(null);
|
|
|
- }
|
|
|
+ return list.stream().filter(i -> i.getShijiWorkDate() != null && i.getShijiEndTime() != null)
|
|
|
+
|
|
|
+ .map(i -> getDateFormat(i, i::getShijiStartTime, simpleDate, simpleDate1)).min(Comparator.reverseOrder()).orElse(null);
|
|
|
|
|
|
|
|
|
- private Date getDateFormat(ItdmGongdanDetail getDateFormat, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private Date getDateFormat(ItdmGongdanDetail getDateFormat, Supplier<String> supplier, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
|
|
|
|
|
|
try {
|
|
|
- return simpleDate1.parse(simpleDate.format(getDateFormat.getShijiWorkDate()) + " " + getDateFormat.getShijiEndTime());
|
|
|
+ return simpleDate1.parse(simpleDate.format(getDateFormat.getShijiWorkDate()) + " " + supplier.get());
|
|
|
} catch (ParseException e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|