提交 3e1d3f50 authored 作者: zhoushaopan's avatar zhoushaopan

fix(决算模块): 修改丢失bug,优化接口响应速度

修改丢失bug,优化接口响应速度
上级 118a39ff
......@@ -23,12 +23,14 @@ import com.tykj.dev.device.usereport.service.DeviceUseReportService;
import com.tykj.dev.device.usereport.subject.vo.DeviceStatistics;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.JacksonUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;
import java.time.LocalDate;
import java.time.LocalDateTime;
......@@ -48,6 +50,7 @@ import static java.util.stream.Collectors.toMap;
* @since 2020/9/28 at 2:26 下午
*/
@Service
@Slf4j
public class FinalCheckServiceImpl implements FinalCheckService {
@Autowired
......@@ -156,15 +159,16 @@ public class FinalCheckServiceImpl implements FinalCheckService {
Map<String, DeviceStatistics> repairBackMap = dataService.getRepairBackStatistics(localDateToDate(startTime), localDateToDateEnd(endTime))
.stream()
.collect(toMap(deviceStatistics -> deviceStatistics.getModel()+"Ǵ"+deviceStatistics.getName(), Function.identity()));
//销毁
Map<String, DeviceStatistics> destroyMap = dataService.getDestroyStatistics(localDateToDate(startTime), localDateToDateEnd(endTime))
.stream()
.collect(toMap(deviceStatistics -> deviceStatistics.getModel()+"Ǵ"+deviceStatistics.getName(), Function.identity()));
//报废
Map<String, DeviceStatistics> scrapMap = dataService.getScrapStatistics(localDateToDate(startTime), localDateToDateEnd(endTime))
.stream()
.collect(toMap(deviceStatistics -> deviceStatistics.getModel()+"Ǵ"+deviceStatistics.getName(), Function.identity()));
//退役
Map<String, DeviceStatistics> retireMap = dataService.getDecommissioningStatistics(localDateToDate(startTime), localDateToDateEnd(endTime))
.stream()
......@@ -172,7 +176,7 @@ public class FinalCheckServiceImpl implements FinalCheckService {
//丢失
Map<String, DeviceStatistics> lossMap = dataService.getLossStatistics(localDateToDate(startTime), localDateToDateEnd(endTime))
.stream()
.collect(toMap(deviceStatistics -> deviceStatistics.getModel() + "G" + deviceStatistics.getName(), Function.identity()));
.collect(toMap(deviceStatistics -> deviceStatistics.getModel() + "Ǵ" + deviceStatistics.getName(), Function.identity()));
for (Map.Entry<String, List<DeviceLibrary>> entry : map.entrySet()) {
List<DeviceLibrary> vList = new ArrayList<>();
List<DeviceLibrary> hList = new ArrayList<>();
......@@ -185,7 +189,7 @@ public class FinalCheckServiceImpl implements FinalCheckService {
Integer retire = retireMap.get(key) == null ? 0 : retireMap.get(key).getNum();
Integer scrap = scrapMap.get(key) == null ? 0 : scrapMap.get(key).getNum();
Integer destroy = destroyMap.get(key) == null ? 0 : destroyMap.get(key).getNum();
Integer loss = lossMap.get(key) == null ? 0 : destroyMap.get(key).getNum();
Integer loss = lossMap.get(key) == null ? 0 : lossMap.get(key).getNum();
v = entry.getValue();
if (!v.isEmpty()){
//纵向
......@@ -202,6 +206,7 @@ public class FinalCheckServiceImpl implements FinalCheckService {
detailList.add(new FinalDetail(v.get(0).getModel(), v.get(0).getName(), vList.size(), hList.size(), 0, otherList.size(), v.size(),
0, storage+repairBack, sending+retire, scrap,report.getId(),loss ,"",destroy));
}
for (Map.Entry<String, List<DeviceLibrary>> entry : outMap.entrySet()) {
String key = entry.getKey();
if (!map.containsKey(key)){
......
......@@ -28,6 +28,7 @@ import com.tykj.dev.device.sendback.service.RepelQueryService;
import com.tykj.dev.device.storage.repository.StorageBillDao;
import com.tykj.dev.device.storage.subject.domin.StorageBill;
import com.tykj.dev.device.user.cache.UnitsCache;
import com.tykj.dev.device.user.cache.UserCache;
import com.tykj.dev.device.user.subject.entity.Units;
import com.tykj.dev.device.user.subject.service.UnitsService;
import com.tykj.dev.device.user.subject.service.UserPublicService;
......@@ -47,6 +48,7 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.persistence.Transient;
import java.lang.reflect.Field;
import java.util.*;
......@@ -107,9 +109,13 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
@Autowired
private UnitsService unitsService;
@Autowired
@Resource
private UnitsCache unitsCache;
@Resource
private UserCache userCache;
@Override
public DeviceUseReport addEntity(DeviceUseReport deviceUseReportEntity) {
return deviceUseReportDao.save(deviceUseReportEntity);
......@@ -576,8 +582,14 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
List<DeviceLibrary> deviceLibraries = new ArrayList<>();
//获取这一段时间所有入库的装备
//筛选出日期范围内所有入库账单
// List<StorageBill> storageBillEntities = storageBillDao.findAll().stream()
// .filter(storageBillEntity -> storageBillEntity.getStorageStatus() == 2 && userPublicService.findByUnitsToname(1).equals(userPublicService.findUnitsNameByUserId(storageBillEntity.getReceiveUseraId())) && storageBillEntity.getUpdateTime().after(startDate) && storageBillEntity.getUpdateTime().before(endDate))
// .collect(toList());
String byUnitsToname = userPublicService.findByUnitsToname(1);
List<StorageBill> storageBillEntities = storageBillDao.findAll().stream()
.filter(storageBillEntity -> storageBillEntity.getStorageStatus() == 2 && userPublicService.findByUnitsToname(1).equals(userPublicService.findUnitsNameByUserId(storageBillEntity.getReceiveUseraId())) && storageBillEntity.getUpdateTime().after(startDate) && storageBillEntity.getUpdateTime().before(endDate))
.filter(storageBillEntity -> storageBillEntity.getStorageStatus() == 2 &&
byUnitsToname.equals(userPublicService.findUnitsNameByUserId(storageBillEntity.getReceiveUseraId()))
&& storageBillEntity.getUpdateTime().after(startDate) && storageBillEntity.getUpdateTime().before(endDate))
.collect(toList());
//获取所有入库的装备
if (storageBillEntities.size() > 0) {
......@@ -611,12 +623,14 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
// List<RepairSendBill> repairSendBills = repairSendBillDao.findAll().stream()
// .filter(repairSendBill -> repairSendBill.getRepairStatus() == 5 && userPublicService.findByUnitsToname(1).equals(repairSendBill.getSendUnit()) && repairSendBill.getSendTime().after(startDate) && repairSendBill.getSendTime().before(endDate))
// .collect(toList());
String byUnitsToname = userPublicService.findByUnitsToname(1);
List<RepairSendBill> repairSendBills = repairSendBillDao.findAll().stream()
.filter(repairSendBill -> repairSendBill.getRepairStatus() == 5 &&
userPublicService.findByUnitsToname(1).equals(unitsCache.findById(repairSendBill.getSendUnitId()).getName()) &&
byUnitsToname.equals(unitsCache.findById(repairSendBill.getSendUnitId()).getName()) &&
repairSendBill.getSendTime().after(startDate) && repairSendBill.getSendTime().before(endDate))
.collect(toList());
//获取所有维修的装备
List<Integer> ids = new ArrayList<>();
if (repairSendBills.size() > 0) {
for (RepairSendBill s : repairSendBills) {
// String[] strings = s.getRepairDeviceCheckResult().split("x");
......@@ -626,12 +640,14 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
//出库无误装备
if ("1".equals(s1.substring(s1.length() - 1))) {
Integer id = Integer.parseInt(s1.substring(0, s1.length() - 1));
DeviceLibrary deviceLibraryEntity = deviceLibraryService.getOne(id);
deviceLibraries.add(deviceLibraryEntity);
ids.add(id);
// DeviceLibrary deviceLibraryEntity = deviceLibraryService.getOne(id);
// deviceLibraries.add(deviceLibraryEntity);
}
}
}
}
deviceLibraries.addAll(deviceLibraryService.findAllByIds(ids));
}
return getDeviceStatistics(deviceLibraries);
}
......@@ -647,6 +663,7 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
userPublicService.findByUnitsToname(1).equals(unitsCache.findById(repairBackBill.getReceiveUnitId()).getName()) && repairBackBill.getCreateTime().after(startDate) && repairBackBill.getCreateTime().before(endDate))
.collect(toList());
//获取所有的装备维修退回的
List<Integer> ids = new ArrayList<>();
if (backBills.size()>0){
for (RepairBackBill backBill : backBills) {
String[] strings = backBill.getBackCheckDetail().split("x");
......@@ -655,12 +672,14 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
//出库无误装备
if ("1".equals(s1.substring(s1.length() - 1))) {
Integer id = Integer.parseInt(s1.substring(0, s1.length() - 1));
DeviceLibrary deviceLibraryEntity = deviceLibraryService.getOne(id);
deviceLibraries.add(deviceLibraryEntity);
ids.add(id);
// DeviceLibrary deviceLibraryEntity = deviceLibraryService.getOne(id);
// deviceLibraries.add(deviceLibraryEntity);
}
}
}
}
deviceLibraries.addAll(deviceLibraryService.findAllByIds(ids));
}
return getDeviceStatistics(deviceLibraries);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论