|
@@ -1,27 +1,29 @@
|
|
|
package com.tuoren.web.layer.service.impl;
|
|
package com.tuoren.web.layer.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
+import com.tuoren.web.layer.d0.BusReceiveRecordUpdateDTO;
|
|
|
|
|
+import com.tuoren.web.layer.d0.ModificationComparison;
|
|
|
|
|
+import com.tuoren.web.layer.d0.ModificationComparisonMap;
|
|
|
import com.tuoren.web.layer.entity.BusPumpEntity;
|
|
import com.tuoren.web.layer.entity.BusPumpEntity;
|
|
|
import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
|
|
import com.tuoren.web.layer.entity.BusReceiveRecordUpdateEntity;
|
|
|
import com.tuoren.web.layer.mapper.BusReceiveRecordUpdateMapper;
|
|
import com.tuoren.web.layer.mapper.BusReceiveRecordUpdateMapper;
|
|
|
import com.tuoren.web.layer.service.IBusReceiveRecordUpdateService;
|
|
import com.tuoren.web.layer.service.IBusReceiveRecordUpdateService;
|
|
|
import com.tuoren.web.layer.vo.ReceiveRecordUpdateQueryParam;
|
|
import com.tuoren.web.layer.vo.ReceiveRecordUpdateQueryParam;
|
|
|
|
|
+import com.tuoren.web.utils.RecordUpdateUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
|
-import java.util.Arrays;
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
+import java.util.stream.IntStream;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author wangzl
|
|
* @author wangzl
|
|
@@ -89,15 +91,33 @@ public class BusReceiveRecordUpdateImpl extends ServiceImpl<BusReceiveRecordUpda
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public IPage<BusReceiveRecordUpdateEntity> queryUpdateList(Integer pageNo, Integer pageSize, ReceiveRecordUpdateQueryParam param) {
|
|
|
|
|
- IPage<BusReceiveRecordUpdateEntity> iPage = new Page<>(pageNo, pageSize);
|
|
|
|
|
|
|
+ public BusReceiveRecordUpdateDTO queryUpdateList(ReceiveRecordUpdateQueryParam param) {
|
|
|
List<BusReceiveRecordUpdateEntity> list = this.list(new LambdaQueryWrapper<BusReceiveRecordUpdateEntity>()
|
|
List<BusReceiveRecordUpdateEntity> list = this.list(new LambdaQueryWrapper<BusReceiveRecordUpdateEntity>()
|
|
|
.eq(BusReceiveRecordUpdateEntity::getHospitalCode, param.getHospitalCode())
|
|
.eq(BusReceiveRecordUpdateEntity::getHospitalCode, param.getHospitalCode())
|
|
|
.eq(BusReceiveRecordUpdateEntity::getPatientCode, param.getPatientCode())
|
|
.eq(BusReceiveRecordUpdateEntity::getPatientCode, param.getPatientCode())
|
|
|
.eq(BusReceiveRecordUpdateEntity::getPumpCode, param.getPumpCode())
|
|
.eq(BusReceiveRecordUpdateEntity::getPumpCode, param.getPumpCode())
|
|
|
.orderByDesc(BusReceiveRecordUpdateEntity::getGmtModified));
|
|
.orderByDesc(BusReceiveRecordUpdateEntity::getGmtModified));
|
|
|
- iPage.setRecords(list);
|
|
|
|
|
- return iPage;
|
|
|
|
|
|
|
+ if (CollectionUtil.isEmpty(list)) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ BusReceiveRecordUpdateEntity busReceiveRecordUpdateEntity = list.get(0);
|
|
|
|
|
+ List<ModificationComparisonMap> dataList = IntStream.range(0, list.size()).mapToObj(i -> {
|
|
|
|
|
+ List<ModificationComparison> comparisons = new ArrayList<>();
|
|
|
|
|
+ if (i == 0) {
|
|
|
|
|
+ comparisons.addAll(RecordUpdateUtil.buildInitialComparisons(list.get(i)));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ comparisons.addAll(RecordUpdateUtil.buildComparisons(list.get(i - 1), list.get(i)));
|
|
|
|
|
+ }
|
|
|
|
|
+ return ModificationComparisonMap.builder().modifyTime(list.get(i).getGmtModified())
|
|
|
|
|
+ .comparisons(comparisons)
|
|
|
|
|
+ .build();
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ return BusReceiveRecordUpdateDTO.builder()
|
|
|
|
|
+ .pumpCode(busReceiveRecordUpdateEntity.getPumpCode())
|
|
|
|
|
+ .hospitalCode(busReceiveRecordUpdateEntity.getHospitalCode())
|
|
|
|
|
+ .patientCode(busReceiveRecordUpdateEntity.getPatientCode())
|
|
|
|
|
+ .dataList(dataList)
|
|
|
|
|
+ .build();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|