From 83fe57abf6233e69b98e3b0af266cade54883e53 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 27 十一月 2024 18:42:12 +0800
Subject: [PATCH] 开发更新
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 61 +++++++++++++++++++++---------
1 files changed, 43 insertions(+), 18 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 997253e..51efed1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -538,7 +538,7 @@
//濡傛灉鏈夌璧佹潯娆�
if(Constants.formatBigdecimal(model.getZlDeposit()).compareTo(new BigDecimal(0))>0){
//濡傛灉鏈夌璧佹娂閲�
- billList1.add(initDepoistBill(Constants.THREE,model));
+ billList1.add(initDepoistBill(Constants.THREE,model,details));
}
if(Constants.equalsInteger(model.getZlPayType(), Constants.ZERO)){
//濡傛灉鏄竴娆℃�т粯娓�
@@ -559,7 +559,7 @@
//濡傛灉鐗╀笟鏉℃
if(Constants.formatBigdecimal(model.getWyDeposit()).compareTo(new BigDecimal(0))>0){
//濡傛灉鏈夌璧佹娂閲�
- billList2.add(initDepoistBill(Constants.FOUR,model));
+ billList2.add(initDepoistBill(Constants.FOUR,model,details));
}
if(Constants.equalsInteger(model.getWyPayType(), Constants.ZERO)){
//濡傛灉鏄竴娆℃�т粯娓�
@@ -599,7 +599,7 @@
}
}
- private YwContractBill initDepoistBill(int type, YwContract model) {
+ private YwContractBill initDepoistBill(int type, YwContract model, List<YwContractDetail> details) {
YwContractBill bill = new YwContractBill();
bill.setCreateDate(model.getEditDate());
bill.setCreator(model.getEditor());
@@ -612,10 +612,13 @@
bill.setEndDate(model.getEndDate());
bill.setType(Constants.ZERO);
bill.setCostType(type);
+ bill.setPlanPayDate(bill.getStartDate());
bill.setTotleFee(type==Constants.THREE?model.getZlDeposit():model.getWyDeposit());//鎶奸噾璐圭敤
bill.setReceivableFee(bill.getTotleFee());
bill.setBillType(Constants.ZERO);
+ bill.setPayStatus(Constants.ZERO);
bill.setSortnum(0);
+ bill.setCompanyId(model.getCompanyId());
return bill;
}
@@ -667,7 +670,7 @@
list.add(DateUtil.addMonthToDate(startDate,i*6));
}
if(restMonth>0 || monthDays>0){
- list.add(DateUtil.addDaysToDate(startDate,monthSix));
+ list.add(DateUtil.addMonthToDate(startDate,monthSix*6));
}
return list;
}
@@ -682,7 +685,7 @@
list.add(DateUtil.addMonthToDate(startDate,i*3));
}
if(restMonth>0 || monthDays>0){
- list.add(DateUtil.addDaysToDate(startDate,monthThree));
+ list.add(DateUtil.addMonthToDate(startDate,monthThree*3));
}
return list;
}
@@ -713,28 +716,30 @@
if(temp+1 < dateList.size()){
end =DateUtil.addDaysToDate(dateList.get(temp+1),-1);
}
+ temp++;
YwContractBill bill = initCreateBillModel(model,d );
bill.setStartDate(start);//璐﹀崟寮�濮�
bill.setEndDate(end);//璐﹀崟缁撴潫
- bill.setPlanPayDate(DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1));
- BigDecimal totalFee =getTotalFeeByStartEnd(model,d,freeStart,freeEnd);
+ Date planPayDate = DateUtil.addDaysToDate(bill.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1);
+ bill.setPlanPayDate(planPayDate.getTime()>System.currentTimeMillis()?planPayDate:new Date());
+ BigDecimal totalFee =getTotalFeeByStartEnd(model,d,bill,freeStart,freeEnd);
bill.setTotleFee(totalFee);
bill.setReceivableFee(totalFee);
bill.setBillType(Constants.ZERO);
- temp++;
+
+ bill.setCompanyId(model.getCompanyId());
list.add(bill);
}
}
-
- private BigDecimal getTotalFeeByStartEnd(YwContract model, YwContractDetail d,Date freeStart,Date freeEnd) {
+ private BigDecimal getTotalFeeByStartEnd(YwContract model, YwContractDetail d, YwContractBill bill,Date freeStart,Date freeEnd) {
BigDecimal totalFee = new BigDecimal(0);
- DateCompare dateCompare = DateCompare.dayCompare(d.getStartDate(),d.getEndDate(),freeStart,freeEnd);
+ DateCompare dateCompare = DateCompare.dayCompare(bill.getStartDate(),DateUtil.addDaysToDate(bill.getEndDate(),1),freeStart,DateUtil.addDaysToDate(freeEnd,1));
if(Constants.equalsInteger(d.getCircleType(),Constants.ZERO)){
//0=鍏冩瘡骞崇背澶�
- int days = dateCompare.getDay();
+ int days = dateCompare.getDay() ;
BigDecimal areas = getAreasNumBYRooms(model.getRoomList());
totalFee = new BigDecimal(days).multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
}else if(Constants.equalsInteger(d.getCircleType(),Constants.ONE)){
@@ -749,7 +754,7 @@
totalFee = year.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
}else if(Constants.equalsInteger(d.getCircleType(),Constants.THREE)){
//3=鍏冩瘡澶�
- int days = dateCompare.getDay();
+ int days = dateCompare.getDay() ;
totalFee = new BigDecimal(days).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
}else if(Constants.equalsInteger(d.getCircleType(),Constants.FOUR)){
//4=鍏冩瘡鏈�
@@ -800,8 +805,8 @@
YwContractBill bill = initCreateBillModel(model,d);
bill.setStartDate(d.getStartDate());//璐﹀崟寮�濮�
bill.setEndDate(d.getEndDate());//璐﹀崟缁撴潫
- bill.setPlanPayDate(DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1));
- bill.setTotleFee(getTotalFeeByStartEnd(model,d,freeStart,freeEnd));
+ bill.setPlanPayDate(DateUtil.addDaysToDate(bill.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1));
+ bill.setTotleFee(getTotalFeeByStartEnd(model,d,bill,freeStart,freeEnd));
bill.setReceivableFee(bill.getTotleFee());
bill.setBillType(Constants.ZERO);
list.add(bill);
@@ -839,8 +844,11 @@
}
private void initFiles(YwContract model) {
- List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
- .eq(Multifile::getObjId, model.getId() )
+ List<Multifile> multifiles = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>()
+ .selectAll(Multifile.class)
+ .selectAs(SystemUser::getRealname,Multifile::getUserName)
+ .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator)
+ .eq(Multifile::getObjId,model.getId())
.in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.YW_CONTRACT_FILE.getKey()}))
.eq(Multifile::getIsdeleted,Constants.ZERO));
if(multifiles!=null){
@@ -906,7 +914,6 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鍚堝悓鏈夋晥鏈熺粨鏉熸椂闂翠笉寰楁棭浜庡紑濮嬫椂闂达紒");
}
-
if(Constants.equalsInteger(model.getType(),Constants.ZERO )
|| Constants.equalsInteger(model.getType(),Constants.TWO)){
if( model.getZlDeposit() == null
@@ -917,12 +924,18 @@
||model.getZlDetailList().size() ==0){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜椤甸潰瑕佹眰濉啓绉熻祦鏉℃淇℃伅");
}
+
if(!(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()==null) && (
(model.getZlFreeEndDate()!=null && model.getZlFreeStartDate()==null)
||(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()!=null)
||model.getZlFreeEndDate().getTime()<= model.getZlFreeStartDate().getTime())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勭璧佹潯娆惧厤绉熸湡淇℃伅锛�");
+ }
+ if((model.getZlFreeStartDate()!=null && model.getZlFreeEndDate()!=null)
+ && (model.getZlFreeEndDate().getTime()>model.getEndDate().getTime()
+ || model.getZlFreeStartDate().getTime()<model.getStartDate().getTime())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鍏嶇鏈熷紑濮嬫棩鏈熷拰缁撴潫鏃ユ湡闄愬埗鍦ㄥ悎鍚屾椂闂磋寖鍥村唴锛�");
}
for(YwContractDetail d :model.getZlDetailList()){
if( d.getStartDate() == null
@@ -936,6 +949,9 @@
}
if(d.getEndDate().getTime()<= d.getStartDate().getTime()){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绉熻祦鏉℃鏈夋晥鏈熺粨鏉熸椂闂翠笉寰楁棭浜庡紑濮嬫椂闂达紒");
+ }
+ if(d.getEndDate().getTime()>model.getEndDate().getTime() ||d.getStartDate().getTime()<model.getStartDate().getTime()){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏉℃寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡闄愬埗鍦ㄥ悎鍚屾椂闂磋寖鍥村唴锛�");
}
if(!Constants.equalsInteger(model.getWyPayType(),Constants.ZERO) &&
Constants.equalsInteger(d.getCircleType(),Constants.SIX)){
@@ -958,11 +974,17 @@
){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋寜椤甸潰瑕佹眰濉啓鐗╀笟鏉℃淇℃伅");
}
+
if(!(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()==null) && (
(model.getWyFreeEndDate()!=null && model.getWyFreeStartDate()==null)
||(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()!=null)
||model.getWyFreeEndDate().getTime()<= model.getWyFreeStartDate().getTime())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨姝g‘鐨勭墿涓氭潯娆惧厤绉熸湡淇℃伅锛�");
+ }
+ if((model.getWyFreeStartDate()!=null && model.getWyFreeEndDate()!=null)
+ && (model.getWyFreeEndDate().getTime()>model.getEndDate().getTime()
+ || model.getWyFreeStartDate().getTime()<model.getStartDate().getTime())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鍏嶇鏈熷紑濮嬫棩鏈熷拰缁撴潫鏃ユ湡闄愬埗鍦ㄥ悎鍚屾椂闂磋寖鍥村唴锛�");
}
for(YwContractDetail d :model.getWyDetailList()){
if( d.getStartDate() == null
@@ -977,6 +999,9 @@
if(d.getEndDate().getTime()<= d.getStartDate().getTime()){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鐗╀笟鏉℃鏈夋晥鏈熺粨鏉熸椂闂翠笉寰楁棭浜庡紑濮嬫椂闂达紒");
}
+ if(d.getEndDate().getTime()>model.getEndDate().getTime() ||d.getStartDate().getTime()<model.getStartDate().getTime()){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏉℃寮�濮嬫棩鏈熷拰缁撴潫鏃ユ湡闄愬埗鍦ㄥ悎鍚屾椂闂磋寖鍥村唴锛�");
+ }
if(!Constants.equalsInteger(model.getWyPayType(),Constants.ZERO) &&
Constants.equalsInteger(d.getCircleType(),Constants.SIX)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鐗╀笟鏉℃鍙湁閫夋嫨涓�娆℃�т粯娆炬椂锛屾墠鑳介�夋嫨璇ユ寜姣忓満鏀惰垂锛�");
--
Gitblit v1.9.3