结算的bug修改
This commit is contained in:
parent
cf19884318
commit
631ff33f7a
|
|
@ -192,9 +192,10 @@ public class NewSettlementService {
|
|||
Comparator.nullsFirst(Comparator.naturalOrder())));
|
||||
ProjectLeaseCostDetail firstItem = items.get(0);
|
||||
//
|
||||
if("1143".equals(machineTypeId)) {
|
||||
if("612".equals(machineTypeId)) {
|
||||
System.err.println(machineTypeId);
|
||||
}
|
||||
System.err.println(machineTypeId);
|
||||
double totalItemAmount = 0.0;
|
||||
//循环逻辑处理
|
||||
//默认在操作日期之前 存量
|
||||
|
|
@ -383,48 +384,74 @@ public class NewSettlementService {
|
|||
|
||||
}else {
|
||||
if(delNum>0) {
|
||||
String fasetStarTimeStr1 = formatLocalDateTimeToDate(fasetStarTime);
|
||||
String operateTimeStr = formatLocalDateTimeToDate(operateTime);
|
||||
if(fasetStarTimeStr1.equals(operateTimeStr)) {
|
||||
operateTime = operateTime.plusDays(1);
|
||||
}
|
||||
//先把领取的
|
||||
long daysBetween=getDay(fasetStarTime,operateTime);
|
||||
if(daysBetween==0) {
|
||||
daysBetween=1;
|
||||
add =false;
|
||||
}
|
||||
if(fasetStarTime==null &¤tCount==0) {
|
||||
fasetStarTime=operateTime;
|
||||
currentCount=currentCount+addNum;
|
||||
// 然后将领取的座位最后一天单独计算
|
||||
double segmentAmount2 = currentCount * unitPrice * 1;
|
||||
Map<String, Object> segment2 = new HashMap<>();
|
||||
LocalDateTime nextDayTime = operateTime.plusDays(1);
|
||||
segment2.put("startTime",operateTime.toString());
|
||||
segment2.put("endTime", nextDayTime.toString());
|
||||
segment2.put("days", 1);
|
||||
segment2.put("count", currentCount);
|
||||
segment2.put("amount", segmentAmount2);
|
||||
segments.add(segment2);
|
||||
totalItemAmount=totalItemAmount+segmentAmount2;
|
||||
//然后减去
|
||||
currentCount=currentCount-delNum;
|
||||
fasetStarTime=nextDayTime;
|
||||
String fasetStarTimeStr = formatLocalDateTimeToDate(fasetStarTime);
|
||||
if(fasetStarTimeStr.equals(endTimeStr)) {
|
||||
isLast=true;
|
||||
}
|
||||
}else {
|
||||
String fasetStarTimeStr1 = formatLocalDateTimeToDate(fasetStarTime);
|
||||
String operateTimeStr = formatLocalDateTimeToDate(operateTime);
|
||||
if(fasetStarTimeStr1.equals(operateTimeStr)) {
|
||||
operateTime = operateTime.plusDays(1);
|
||||
}
|
||||
//先把领取的
|
||||
long daysBetween=getDay(fasetStarTime,operateTime);
|
||||
if(daysBetween==0) {
|
||||
daysBetween=1;
|
||||
add =false;
|
||||
}
|
||||
|
||||
double segmentAmount = currentCount * unitPrice * daysBetween;
|
||||
Map<String, Object> segment = new HashMap<>();
|
||||
segment.put("startTime",fasetStarTime.toString());
|
||||
segment.put("endTime", operateTime.toString());
|
||||
segment.put("days", daysBetween);
|
||||
totalItemAmount=totalItemAmount+segmentAmount;
|
||||
segment.put("count", currentCount);
|
||||
segment.put("amount", segmentAmount);
|
||||
segments.add(segment);
|
||||
|
||||
currentCount=currentCount+addNum;
|
||||
|
||||
double segmentAmount = currentCount * unitPrice * daysBetween;
|
||||
Map<String, Object> segment = new HashMap<>();
|
||||
segment.put("startTime",fasetStarTime.toString());
|
||||
segment.put("endTime", operateTime.toString());
|
||||
segment.put("days", daysBetween);
|
||||
totalItemAmount=totalItemAmount+segmentAmount;
|
||||
segment.put("count", currentCount);
|
||||
segment.put("amount", segmentAmount);
|
||||
segments.add(segment);
|
||||
currentCount=currentCount+addNum;
|
||||
|
||||
// 然后将领取的座位最后一天单独计算
|
||||
double segmentAmount2 = currentCount * unitPrice * 1;
|
||||
Map<String, Object> segment2 = new HashMap<>();
|
||||
LocalDateTime nextDayTime = operateTime.plusDays(1);
|
||||
segment2.put("startTime",operateTime.toString());
|
||||
segment2.put("endTime", nextDayTime.toString());
|
||||
segment2.put("days", 1);
|
||||
segment2.put("count", currentCount);
|
||||
segment2.put("amount", segmentAmount2);
|
||||
segments.add(segment2);
|
||||
totalItemAmount=totalItemAmount+segmentAmount2;
|
||||
//然后减去
|
||||
currentCount=currentCount-delNum;
|
||||
fasetStarTime=nextDayTime;
|
||||
String fasetStarTimeStr = formatLocalDateTimeToDate(fasetStarTime);
|
||||
if(fasetStarTimeStr.equals(endTimeStr)) {
|
||||
isLast=true;
|
||||
// 然后将领取的座位最后一天单独计算
|
||||
double segmentAmount2 = currentCount * unitPrice * 1;
|
||||
Map<String, Object> segment2 = new HashMap<>();
|
||||
LocalDateTime nextDayTime = operateTime.plusDays(1);
|
||||
segment2.put("startTime",operateTime.toString());
|
||||
segment2.put("endTime", nextDayTime.toString());
|
||||
segment2.put("days", 1);
|
||||
segment2.put("count", currentCount);
|
||||
segment2.put("amount", segmentAmount2);
|
||||
segments.add(segment2);
|
||||
totalItemAmount=totalItemAmount+segmentAmount2;
|
||||
//然后减去
|
||||
currentCount=currentCount-delNum;
|
||||
fasetStarTime=nextDayTime;
|
||||
String fasetStarTimeStr = formatLocalDateTimeToDate(fasetStarTime);
|
||||
if(fasetStarTimeStr.equals(endTimeStr)) {
|
||||
isLast=true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}else {
|
||||
//无之前的数据的 第一次进来的
|
||||
if(fasetStarTime==null) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue