From fb487d66f1930780fe1cde09da3fec89b13db2f9 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 27 十一月 2024 16:52:07 +0800 Subject: [PATCH] 开发更新 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java | 95 +++++++++++++++++++++++++++++++++++------------ 1 files changed, 70 insertions(+), 25 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 7521794..101edd1 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 @@ -45,6 +45,8 @@ @Autowired private YwContractMapper ywContractMapper; @Autowired + private YwContractRoomMapper ywContractRoomMapper; + @Autowired private YwContractDetailMapper ywContractDetailMapper; @Autowired private YwContractBillMapper ywContractBillMapper; @@ -82,9 +84,29 @@ ywContractMapper.insert(model); dealDetailListBiz(model);//澶勭悊鏉℃淇℃伅 dealMultifileBiz(model);//澶勭悊闄勪欢淇℃伅 - dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,null,null);//璁板綍鏂板缓鏃ュ織 + dealRoomsForContract(model);//澶勭悊鎴挎簮鍏宠仈琛� + dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,model.getLoginUserInfo().getRealname(),"銆�"+model.getRemark().replace("鍚堝悓鎽樿锛�","")+"銆�");//璁板綍鏂板缓鏃ュ織 + return model.getId(); } + + private void dealRoomsForContract(YwContract model) { + List<YwContractRoom> list = new ArrayList<>(); + for(YwRoom room :model.getRoomList()){ + YwContractRoom t = new YwContractRoom(); + t.setContractId(model.getId()); + t.setRoomId(room.getId()); + t.setCreator(model.getCreator()); + t.setIsdeleted(Constants.ZERO); + t.setCreateDate(model.getCreateDate()); + t.setEditDate(model.getCreateDate()); + t.setEditor(model.getCreator()); + t.setType(Constants.ZERO); + list.add(t); + } + ywContractRoomMapper.insert(list); + } + @Override public List<YwContractBill> getBillList(YwContract model){ @@ -247,6 +269,14 @@ :(Constants.formatBigdecimal(model.getBtFee()).intValue() * -1))+"" ); return str; } + private String getbackRentLogByParam(YwContract model) { + BigDecimal fee = Constants.formatBigdecimal(model.getBtFee()); + String str = "銆愰��绉熸棩{param1}锛岄��绉熷師鍥狅細{param2},閫�绉熷崗璁腑缁熻鐨勮垂鐢ㄦ�昏{param3}鍏冦�傘��"; + str = str.replace("{param1}",DateUtil.getDateLongSlash(model.getBtDate())) + .replace("{param2}",StringUtils.defaultString(model.getBtInfo(),"")) + .replace("{param3}",Constants.formatBigdecimal2Float(model.getBtFee()).doubleValue()+""); + return str; + } @@ -276,7 +306,7 @@ update.setBtFee(param.getBtFee()); update.setBtRemark(getbackRentRemarkByParam(param)); ywContractMapper.updateById(update); - dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK,null,null); + dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param)); return param.getId(); } @@ -508,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)){ //濡傛灉鏄竴娆℃�т粯娓� @@ -529,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)){ //濡傛灉鏄竴娆℃�т粯娓� @@ -569,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()); @@ -582,10 +612,18 @@ bill.setEndDate(model.getEndDate()); bill.setType(Constants.ZERO); bill.setCostType(type); + YwContractDetail d = details.get(Constants.ZERO); + if(Objects.isNull(d)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏉℃鏁版嵁寮傚父"); + } + Date planPayDate = DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1); + bill.setPlanPayDate(planPayDate.getTime()>System.currentTimeMillis()?planPayDate:new Date()); 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; } @@ -632,13 +670,12 @@ int monthSix = months / 6;//6涓湀缁村害鏁伴噺 int restMonth = months % 6;//鍓╀綑鐨勬暣鏈� int monthDays = dateCompare.getMonthDays();//涓嶆弧涓�涓湀鐨勫ぉ鏁� - Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < monthSix; i++) { - list.add(DateUtil.addMonthToDate(date,i*6)); + list.add(DateUtil.addMonthToDate(startDate,i*6)); } if(restMonth>0 || monthDays>0){ - list.add(DateUtil.addDaysToDate(date,monthSix)); + list.add(DateUtil.addDaysToDate(startDate,monthSix)); } return list; } @@ -648,13 +685,12 @@ int monthThree = months / 3;//3涓湀缁村害鏁伴噺 int restMonth = months % 3;//鍓╀綑鐨勬暣鏈� int monthDays = dateCompare.getMonthDays();//涓嶆弧涓�涓湀鐨勫ぉ鏁� - Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < monthThree; i++) { - list.add(DateUtil.addMonthToDate(date,i*3)); + list.add(DateUtil.addMonthToDate(startDate,i*3)); } if(restMonth>0 || monthDays>0){ - list.add(DateUtil.addDaysToDate(date,monthThree)); + list.add(DateUtil.addDaysToDate(startDate,monthThree)); } return list; } @@ -679,24 +715,27 @@ } private void dealCircleDateBillBiz( List<Date> dateList ,YwContract model, YwContractDetail d, Date freeStart, Date freeEnd, List<YwContractBill> list ) { + int temp = 0; for(Date start : dateList){ - Date end = DateUtil.addDaysToDate(DateUtil.addYearToDate(start,1),-1);//缁撴潫鏃ユ湡涓轰笅涓�涓懆鏈熺殑鍓嶄竴澶� - if(end.getTime()> d.getEndDate().getTime() ){ - end = d.getEndDate(); + Date end = d.getEndDate(); + if(temp+1 < dateList.size()){ + end =DateUtil.addDaysToDate(dateList.get(temp+1),-1); } YwContractBill bill = initCreateBillModel(model,d ); bill.setStartDate(start);//璐﹀崟寮�濮� bill.setEndDate(end);//璐﹀崟缁撴潫 - bill.setPlanPayDate(DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1)); + Date planPayDate = DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1); + bill.setPlanPayDate(planPayDate.getTime()>System.currentTimeMillis()?planPayDate:new Date()); BigDecimal totalFee =getTotalFeeByStartEnd(model,d,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) { @@ -747,13 +786,12 @@ DateCompare dateCompare = DateCompare.monthYearCompare(startDate, endDate ); int years = dateCompare.getYear(); int yeardays = dateCompare.getYearDays(); - Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < years; i++) { - list.add(DateUtil.addYearToDate(date,i)); + list.add(DateUtil.addYearToDate(startDate,i)); } if(yeardays>0){ - list.add(DateUtil.addYearToDate(date,years)); + list.add(DateUtil.addYearToDate(startDate,years)); } return list; } @@ -810,8 +848,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){ @@ -1047,6 +1088,7 @@ log.setObjType(type.getKey()); log.setParam1(param1); log.setParam2(param2); + log.setContent(param2); log.setTitle(type.getNoteinfo()); ywWorkorderLogMapper.insert(log); } @@ -1058,12 +1100,13 @@ .selectAs(SystemUser::getRealname,YwContract::getUserName ) .selectAs(YwCustomer::getName,YwContract::getRenterName ) .selectAs(YwProject::getName,YwContract::getProjectName ) - .select("t4.realname",YwContract::getCreatorName ) + .select("t3.realname",YwContract::getCreatorName ) .leftJoin(Company.class,Company::getId,YwContract::getCompanyId) .leftJoin(SystemUser.class,SystemUser::getId,YwContract::getUserId) .leftJoin(SystemUser.class,SystemUser::getId,YwContract::getCreator) .leftJoin(YwProject.class,YwProject::getId,YwContract::getProjectId) - .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId); + .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId) + .eq( YwContract::getId,id); YwContract model = ywContractMapper.selectJoinOne(YwContract.class,queryWrapper); if(model != null){ //鍚堝悓闄勪欢 @@ -1078,7 +1121,7 @@ .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId) .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor) .eq(YwRoom::getIsdeleted,Constants.ZERO) - .exists("(select a.id from yw_contract_room a where a.isdeleted=1 and a.room_id=t.id and a.contract_id="+model.getId()+")"); + .exists("(select a.id from yw_contract_room a where a.isdeleted=0 and a.type=0 and a.room_id=t.id and a.contract_id="+model.getId()+")"); model.setRoomList(roomMapper.selectJoinList(YwRoom.class,rw)); model.setWyFirstCircleStr(Constants.getUnitTypeByNum(model.getWyFirstCircle())); model.setZlFirstCircleStr(Constants.getUnitTypeByNum(model.getZlFirstCircle())); @@ -1167,8 +1210,10 @@ MPJLambdaWrapper<YwContract> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(YwContract.class ) .selectAs(Company::getName,YwContract::getCompanyName ) + .selectAs(YwCustomer::getName,YwContract::getRenterName ) .select("(select sum(r.area) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)",YwContract::getTotalArea ) - .leftJoin(Company.class,Company::getId,YwContract::getCompanyId); + .leftJoin(Company.class,Company::getId,YwContract::getCompanyId) + .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.eq(YwContract::getId, pageWrap.getModel().getId()); -- Gitblit v1.9.3