From f8f7fbc0f334bca013a1af9151a6d913a1d50b3f Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 09 十二月 2024 23:01:15 +0800 Subject: [PATCH] 开发更新 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 86 +++++++++++++++++++++++++------------------ 1 files changed, 50 insertions(+), 36 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 6e2d2d4..25b1402 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 @@ -31,6 +31,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -74,12 +75,20 @@ @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(YwContract model) { isParamValidCreated(model); + + model.setCreator(model.getLoginUserInfo().getId()); model.setIsdeleted(Constants.ZERO); model.setCreateDate(new Date()); - model.setStatus(Constants.ZERO); model.setEditDate(model.getCreateDate()); model.setEditor(model.getCreator()); + if(model.getStartDate().getTime() > System.currentTimeMillis()){ + model.setStatus(Constants.ZERO); + }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && model.getEndDate().getTime() > System.currentTimeMillis()){ + model.setStatus(Constants.ONE); + }else{ + model.setStatus(Constants.TWO); + } model.setStatus(Constants.ZERO);//寰呮墽琛� model.setRemark(getRemarlByParam(model)); ywContractMapper.insert(model); @@ -268,7 +277,7 @@ } model.setTotalArea(new BigDecimal(0)); for(YwRoom r : rooms){ - model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getArea()))); + model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getRentArea()))); } model.setRoomList(rooms); } @@ -307,16 +316,19 @@ .replace("{param3}",DateUtil.getDateLongSlash(model.getBtDate())) .replace("{param4}",fee.compareTo(new BigDecimal(0)) >=0?"鏀�":"浠�") .replace("{param5}",(fee.compareTo(new BigDecimal(0)) >=0? - Constants.formatBigdecimal2Float(model.getBtFee()).intValue() - :(Constants.formatBigdecimal2Float(model.getBtFee()).intValue() * -1))+"" ); + Constants.formatBigdecimal2Float(model.getBtFee()) + :(Constants.formatBigdecimal2Float(model.getBtFee()).multiply(new BigDecimal(-1)))).toString()); return str; } private String getbackRentLogByParam(YwContract model) { BigDecimal fee = Constants.formatBigdecimal(model.getBtFee()); - String str = "銆愰��绉熸棩{param1}锛岄��绉熷師鍥狅細{param2},閫�绉熷崗璁腑缁熻鐨勮垂鐢ㄦ�昏{param3}鍏冦�傘��"; + String str = "銆愰��绉熸棩{param1}锛岄��绉熷師鍥狅細{param2},閫�绉熷崗璁腑缁熻鐨勮垂鐢ㄦ�昏闇�{param4}{param5}鍏冦�傘��"; str = str.replace("{param1}",DateUtil.getDateLongSlash(model.getBtDate())) .replace("{param2}",StringUtils.defaultString(model.getBtInfo(),"")) - .replace("{param3}",Constants.formatBigdecimal2Float(model.getBtFee()).doubleValue()+""); + .replace("{param4}",fee.compareTo(new BigDecimal(0)) >=0?"鏀�":"浠�") + .replace("{param5}",(fee.compareTo(new BigDecimal(0)) >=0? + Constants.formatBigdecimal2Float(model.getBtFee()) + :(Constants.formatBigdecimal2Float(model.getBtFee()).multiply(new BigDecimal(-1)))).toString()); return str; } @@ -353,9 +365,6 @@ update.setBtFee(param.getBtFee()); update.setBtRemark(getbackRentRemarkByParam(param)); ywContractMapper.updateById(update); -// if(1==1){ -// throw new BusinessException(ResponseStatus.NOT_ALLOWED); -// } dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param)); return param.getId(); } @@ -417,16 +426,8 @@ closeBills.add(bill); noBills.add(bill); } -// if(bill.getStartDate().getTime()>param.getEditDate().getTime()){ -// //濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴 -// closeBills.add(bill); -// noBills.add(bill); -// }else{ -// canBills.add(bill); -// } }else if(Constants.equalsInteger(bill.getPayStatus(),Constants.ONE) ){ if(bill.getStartDate().getTime()>param.getBtDate().getTime()){ -// if(bill.getEndDate().getTime()<param.getEditDate().getTime()){ //濡傛灉宸茬粨娓咃紝璐﹀崟鐩存帴鍏抽棴 noBills.add(bill); }else{ @@ -487,8 +488,10 @@ for(YwContractBill addBill : param.getAddBillList()){ addBill.setIsdeleted(Constants.ZERO); addBill.setContractId(param.getId()); - addBill.setType(Constants.ONE); + addBill.setType(Constants.TWO); addBill.setStatus(Constants.ZERO); + addBill.setTotleFee(addBill.getReceivableFee()); + addBill.setCompanyId(param.getCompanyId()); if(Constants.equalsInteger(addBill.getFeeType(),Constants.ONE)){ addBill.setStartDate(addBill.getPlanPayDate()); addBill.setEndDate(addBill.getPlanPayDate()); @@ -698,12 +701,16 @@ } int num =1; for(int i=0;i<billList1.size();i++){ - billList1.get(i).setSortnum(num); - num++; + if(Constants.equalsInteger(billList1.get(i).getCostType(),Constants.ZERO)){ + billList1.get(i).setSortnum(num); + num++; + } } for(int i=0;i<billList2.size();i++){ - billList2.get(i).setSortnum(num); - num++; + if(Constants.equalsInteger(billList1.get(i).getCostType(),Constants.ONE)) { + billList2.get(i).setSortnum(num); + num++; + } } if(model.getId()!=null){ ywContractBillMapper.insert(billList1); @@ -849,34 +856,37 @@ BigDecimal totalFee = new BigDecimal(0); DateCompare dateCompare = DateCompare.dayCompare(bill.getStartDate(),bill.getEndDate(),freeStart, freeEnd); if(Constants.equalsInteger(d.getCircleType(),Constants.ZERO)){ - //0=鍏冩瘡骞崇背澶� + //0=鍏冩瘡骞崇背澶� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勫ぉ鏁�*绉熻祦闈㈢Н*鍗曚环锛� 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)){ - //1=鍏冩瘡骞崇背鏈� + //1=鍏冩瘡骞崇背鏈� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勬湀鏁帮紙寮�濮嬫棩鏈熻绠楄嚜鐒舵湀锛�*绉熻祦闈㈢Н*鍗曚环+涓嶆弧涓�涓湀鐨勫ぉ鏁�*绉熻祦闈㈢Н*鍗曚环*12/365锛� BigDecimal areas = getAreasNumBYRooms(model.getRoomList()); BigDecimal month =dateCompare.getMonthFloat(); totalFee = month.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍� }else if(Constants.equalsInteger(d.getCircleType(),Constants.TWO)){ - //2=鍏冩瘡骞崇背骞� + //2=鍏冩瘡骞崇背骞� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勬湀鏁帮紙寮�濮嬫棩鏈熻绠楄嚜鐒舵湀锛�*鍗曚环*闈㈢Н/12+涓嶆弧涓�涓湀鐨勫ぉ鏁�*绉熻祦闈㈢Н*鍗曚环/365锛� BigDecimal areas = getAreasNumBYRooms(model.getRoomList()); - BigDecimal year = dateCompare.getYearFloat(); - totalFee = year.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍� + BigDecimal month = new BigDecimal(dateCompare.getMonth()); + totalFee = ((month.multiply(Constants.formatBigdecimal(d.getPrice())).divide(new BigDecimal(12),2, RoundingMode.HALF_UP)) + .add(new BigDecimal(dateCompare.getMonthDays()).multiply(Constants.formatBigdecimal(d.getPrice())).divide(new BigDecimal(365),2, RoundingMode.HALF_UP))) + .multiply(areas);//鎬讳环鏍� }else if(Constants.equalsInteger(d.getCircleType(),Constants.THREE)){ - //3=鍏冩瘡澶� + //3=鍏冩瘡澶� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勫ぉ鏁�*鍗曚环锛� int days = dateCompare.getDay() ; totalFee = new BigDecimal(days).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍� }else if(Constants.equalsInteger(d.getCircleType(),Constants.FOUR)){ - //4=鍏冩瘡鏈� + //4=鍏冩瘡鏈� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勬湀鏁帮紙寮�濮嬫棩鏈熻绠楄嚜鐒舵湀锛�*鍗曚环+涓嶆弧涓�涓湀鐨勫ぉ鏁�*鍗曚环*12/365 BigDecimal month = dateCompare.getMonthFloat(); totalFee = month.multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍� }else if(Constants.equalsInteger(d.getCircleType(),Constants.FIVE)){ - //5=鍏冩瘡骞� - BigDecimal year = dateCompare.getYearFloat(); - totalFee = year.multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍� + //5=鍏冩瘡骞� 璐﹀崟閲戦=璐﹀崟鍛ㄦ湡鐨勬湀鏁帮紙寮�濮嬫棩鏈熻绠楄嚜鐒舵湀锛�*鍗曚环*闈㈢Н/12+涓嶆弧涓�涓湀鐨勫ぉ鏁�*绉熻祦闈㈢Н*鍗曚环/365锛� + BigDecimal month = new BigDecimal(dateCompare.getMonth()); + totalFee =( month.multiply(Constants.formatBigdecimal(d.getPrice())).divide(new BigDecimal(12),2, RoundingMode.HALF_UP)) + .add(new BigDecimal(dateCompare.getMonthDays()).multiply(Constants.formatBigdecimal(d.getPrice())).divide(new BigDecimal(365),2, RoundingMode.HALF_UP));//鎬讳环鏍� }else if(Constants.equalsInteger(d.getCircleType(),Constants.SIX)){ - //6=鍏冩瘡鍦� + //6=鍏冩瘡鍦� 璐﹀崟閲戦=鍗曚环锛涘彧鏈夐�夋嫨涓�娆℃�т粯娆炬椂锛屾墠鑳介�夋嫨璇ュ崟浠风淮搴︼紱 totalFee =Constants.formatBigdecimal(d.getPrice()); } if(Constants.equalsInteger(model.getRoundedUp(),Constants.ONE)){ @@ -947,7 +957,7 @@ BigDecimal data= new BigDecimal(0); if(roomList!=null){ for(YwRoom r :roomList){ - data = data.add(Constants.formatBigdecimal(r.getArea())); + data = data.add(Constants.formatBigdecimal(r.getRentArea())); } } @@ -1141,7 +1151,7 @@ } model.setTotalArea(new BigDecimal(0)); for(YwRoom r : rooms){ - model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getArea()))); + model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getRentArea()))); } model.setRoomList(rooms); YwCustomer customer = customerMapper.selectById(model.getRenterId()); @@ -1319,9 +1329,13 @@ if(model.getBillList()!=null && model.getBillList().size()>0){ for(YwContractBill bill: model.getBillList()){ //浠樻鐘舵�侊細0=寰呮敹娆撅紱1=宸茬粨娓咃紱2=閮ㄥ垎缁撴竻锛�3=寰呬粯娆撅紱4=寰呴��娆撅紱5=宸插叧闂� + if( Constants.formatBigdecimal(bill.getReceivableFee()).compareTo(new BigDecimal(0)) ==0){ + //濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴 + continue; + } if(Constants.equalsInteger(bill.getPayStatus(),Constants.ZERO) ||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){ - if(bill.getStartDate().getTime()>nowEnd){ + if(bill.getStartDate().getTime()>nowEnd ){ //濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴 continue; } -- Gitblit v1.9.3