| | |
| | | @Autowired |
| | | private YwContractMapper ywContractMapper; |
| | | @Autowired |
| | | private YwContractRoomMapper ywContractRoomMapper; |
| | | @Autowired |
| | | private YwContractDetailMapper ywContractDetailMapper; |
| | | @Autowired |
| | | private YwContractBillMapper ywContractBillMapper; |
| | |
| | | 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){ |
| | | |
| | | isParamValidForBill(model); |
| | | model.setCreateDate(new Date()); |
| | | model.setEditDate(model.getCreateDate()); |
| | |
| | | ||model.getZlDetailList().size() ==0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç§èµæ¡æ¬¾ä¿¡æ¯"); |
| | | } |
| | | model.setType(Constants.TWO); |
| | | model.setWyDetailList(null); |
| | | if(!(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()==null) && ( |
| | | (model.getZlFreeEndDate()!=null && model.getZlFreeStartDate()==null) |
| | | ||(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()!=null) |
| | |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç©ä¸æ¡æ¬¾ä¿¡æ¯"); |
| | | } |
| | | model.setType(Constants.ONE); |
| | | model.setZlDetailList(null); |
| | | if(!(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()==null) && ( |
| | | (model.getWyFreeEndDate()!=null && model.getWyFreeStartDate()==null) |
| | | ||(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()!=null) |
| | |
| | | } |
| | | } |
| | | |
| | | YwProject project = projectMapper.selectById(model.getCompanyId()); |
| | | YwProject project = projectMapper.selectById(model.getProjectId()); |
| | | if(project ==null || Constants.equalsInteger(project.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®ç项ç®ä¿¡æ¯ï¼"); |
| | | } |
| | |
| | | for(YwRoom r : rooms){ |
| | | model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getArea()))); |
| | | } |
| | | model.setRoomList(rooms); |
| | | } |
| | | |
| | | private String getRemarlByParam(YwContract model) { |
| | | |
| | | String str = ""; |
| | | YwContractDetail zl = model.getZlDetailList()!=null&&model.getZlDetailList().size()>0?model.getZlDetailList().get(0):null; |
| | | YwContractDetail yw = model.getWyDetailList()!=null&&model.getWyDetailList().size()>0?model.getWyDetailList().get(0):null; |
| | | //èµ·ç§æ¥2024/06/01ï¼ç§èµæ°ä¸º500ã¡ã馿ç§èµä¸æä¸ä»ï¼ç§éåä»·35å
/ã¡Â·æã馿ç©ä¸ä¸æä¸ä»ï¼ç©ä¸åä»·4.3å
/ã¡Â·æ |
| | | String str0 = "ååæè¦ï¼èµ·ç§æ¥{param1}ï¼ç§èµæ°ä¸º{param2}ã¡ã馿ç§èµ{param3}ï¼ç§éåä»·{param4}å
{param5}ã馿ç©ä¸{param6}ï¼ç©ä¸åä»·{param7}{param8}"; |
| | | String str1 = "ååæè¦ï¼èµ·ç§æ¥{param1}ï¼ç§èµæ°ä¸º{param2}ã¡ã馿ç§èµ{param3}ï¼ç§éåä»·{param4}å
{param5}ã"; |
| | |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | | str= str0; |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | str= str1; |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | str= str2; |
| | | } |
| | | str = str.replace("{param1}",DateUtil.getDateLongSlash(model.getStartDate())) |
| | | .replace("{param2}",model.getTotalArea().intValue()+"") |
| | | .replace("{param3}",Constants.getPayTypeByNum(model.getZlPayType())) |
| | | .replace("{param4}",zl!=null&&zl.getPrice()!=null?(zl.getPrice().intValue()+""):"0") |
| | | .replace("{param5}",Constants.getPayTypeByNum(model.getWyPayType())) |
| | | .replace("{param6}",Constants.getUnitTypeByNum(zl!=null?zl.getCircleType():null)) |
| | | .replace("{param7}",zl!=null&&yw.getPrice()!=null?(zl.getPrice().intValue()+""):"0") |
| | | .replace("{param8}",Constants.getUnitTypeByNum(yw!=null?yw.getCircleType():null)); |
| | | .replace("{param4}",Constants.formatBigdecimal(model.getZlFirstPrice()).intValue()+"") |
| | | .replace("{param5}",Constants.getUnitTypeByNum(model.getZlFirstCircle()) |
| | | .replace("{param6}",Constants.getPayTypeByNum(model.getWyPayType())) |
| | | .replace("{param7}",Constants.formatBigdecimal(model.getWyFirstPrice()).intValue()+"") |
| | | .replace("{param8}",Constants.getUnitTypeByNum(model.getWyFirstCircle()))); |
| | | return str; |
| | | } |
| | | private String getbackRentRemarkByParam(YwContract model) { |
| | |
| | | .replace("{param4}",(fee.compareTo(new BigDecimal(0)) >=0? |
| | | Constants.formatBigdecimal(model.getBtFee()).intValue() |
| | | :(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; |
| | | } |
| | | |
| | |
| | | //å¤ç |
| | | dealBackRentBillBiz(param); |
| | | YwContract update = new YwContract(); |
| | | update.setId(param.getId()); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(param.getLoginUserInfo().getId()); |
| | | update.setBtActDate(update.getEditDate()); |
| | | update.setBtActUserId(update.getEditor()); |
| | | update.setStatus(Constants.THREE); |
| | | if(Objects.nonNull(param.getBtWaitBill()) && param.getBtWaitBill() > Constants.ZERO){ |
| | | update.setStatus(Constants.THREE); |
| | | }else{ |
| | | update.setStatus(Constants.FOUR); |
| | | } |
| | | update.setBtInfo(param.getBtInfo()); |
| | | update.setBtDate(param.getBtDate()); |
| | | update.setBtType(param.getBtType()); |
| | |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void dealTimeOut(){ |
| | | //宿¶å¤çååæ§è¡ä¸ |
| | | ywContractMapper.update(new UpdateWrapper<YwContract>() |
| | | .lambda() |
| | | .set(YwContract::getStatus,Constants.ONE) |
| | | .set(YwContract::getEditDate,DateUtil.getCurrDateTime()) |
| | | .eq(YwContract::getIsdeleted,Constants.ZERO) |
| | | .in(YwContract::getStatus,Constants.ZERO) |
| | | .apply(" START_DATE < NOW() AND END_DATE > NOW() ") |
| | | ); |
| | | //宿¶å¤çååå·²è¿æ |
| | | ywContractMapper.update(new UpdateWrapper<YwContract>() |
| | | .lambda() |
| | | .set(YwContract::getStatus,Constants.TWO) |
| | | .set(YwContract::getEditDate,DateUtil.getCurrDateTime()) |
| | | .eq(YwContract::getIsdeleted,Constants.ZERO) |
| | | .in(YwContract::getStatus,Constants.ONE,Constants.ZERO) |
| | | .apply(" END_DATE < NOW() ") |
| | | ); |
| | | |
| | | } |
| | | |
| | | private void dealBackRentBillBiz(YwContract param) { |
| | |
| | | //仿¬¾ç¶æï¼0=å¾
æ¶æ¬¾ï¼1=å·²ç»æ¸
ï¼2=é¨åç»æ¸
ï¼3=å¾
仿¬¾ï¼4=å¾
鿬¾ï¼5=å·²å
³é |
| | | // å¦ææ¯æ¼éæè
ä¿è¯éï¼ä¸æ¯æé款ï¼ä¿æåæ¥çç¶æï¼ 0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=ç§èµæ¼éï¼3=ç©ä¸æ¼éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å
¶ä»;7=ä¿è¯é |
| | | if(Constants.equalsInteger(Constants.THREE,bill.getCostType()) |
| | | || Constants.equalsInteger(Constants.FOUR,bill.getCostType()) |
| | | || Constants.equalsInteger(Constants.TWO,bill.getCostType()) |
| | | ||Constants.equalsInteger(Constants.SEVEN,bill.getCostType())){ |
| | | //æ¼éåä¿è¯é |
| | | yjBills.add(bill); |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ååä¿¡æ¯ä¸åå¨ï¼è¯·è¿ååè¡¨å·æ°éè¯ï¼"); |
| | | } |
| | | |
| | | SystemUser user = systemUserMapper.selectById(param.getUserId()); |
| | | SystemUser user = systemUserMapper.selectById(param.getBtUserId()); |
| | | if(user ==null || (user.getDeleted()!=null&& user.getDeleted() )){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ç»å人信æ¯ä¸åå¨ï¼"); |
| | | } |
| | |
| | | } |
| | | |
| | | private void dealDetailListBiz(YwContract model) { |
| | | List<YwContractDetail> details = new ArrayList<>(); |
| | | List<YwContractDetail> details1 = new ArrayList<>(); |
| | | List<YwContractDetail> details2 = new ArrayList<>(); |
| | | int num = 0; |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | for(YwContractDetail d :model.getZlDetailList()){ |
| | | d.setCreateDate(model.getEditDate()); |
| | | d.setCreator(model.getEditor()); |
| | |
| | | d.setType(Constants.ZERO); |
| | | d.setSortnum(num++); |
| | | d.setStatus(Constants.ZERO); |
| | | details.add(d); |
| | | details1.add(d); |
| | | } |
| | | } |
| | | num = 0; |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | for(YwContractDetail d :model.getWyDetailList()){ |
| | | d.setCreateDate(model.getEditDate()); |
| | | d.setCreator(model.getEditor()); |
| | |
| | | d.setContractId(model.getId()); |
| | | d.setSortnum(num++); |
| | | d.setStatus(Constants.ZERO); |
| | | details.add(d); |
| | | details2.add(d); |
| | | } |
| | | } |
| | | if(model.getId()!=null){ |
| | | ywContractDetailMapper.insert(details);//æ¹éæå
¥æ¡æ¬¾ä¿¡æ¯ä¿¡æ¯ |
| | | if(details1.size()>0){ |
| | | ywContractDetailMapper.insert(details1);//æ¹éæå
¥æ¡æ¬¾ä¿¡æ¯ä¿¡æ¯ |
| | | } |
| | | if(details2.size()>0){ |
| | | ywContractDetailMapper.insert(details2);//æ¹éæå
¥æ¡æ¬¾ä¿¡æ¯ä¿¡æ¯ |
| | | } |
| | | } |
| | | //å¤çè´¦åä¿¡æ¯ |
| | | dealBillListBiz(model,details); |
| | | dealBillListBiz(model,details1,details2); |
| | | } |
| | | |
| | | /** |
| | | * æ¯ä»æ¹å¼ 0=䏿¬¡æ§ä»æ¬¾ï¼1=æ¯ä¸ä¸ªæä¸ä»ï¼2=å
个æä¸ä»ï¼3=ä¸å¹´ä¸ä» |
| | | * @param model |
| | | * @param details |
| | | * @param details1 ç§èµæ¡æ¬¾ |
| | | * @param details2 ç©ä¸æ¡æ¬¾ |
| | | */ |
| | | private void dealBillListBiz(YwContract model, List<YwContractDetail> details) { |
| | | private void dealBillListBiz(YwContract model, List<YwContractDetail> details1, List<YwContractDetail> details2) { |
| | | List<YwContractBill> billList1 = new ArrayList<>(); |
| | | List<YwContractBill> billList2 = new ArrayList<>(); |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | //妿æç§èµæ¡æ¬¾ |
| | | if(Constants.formatBigdecimal(model.getZlDeposit()).compareTo(new BigDecimal(0))>0){ |
| | | //妿æç§èµæ¼é |
| | | billList1.add(initDepoistBill(Constants.THREE,model)); |
| | | billList1.add(initDepoistBill(Constants.TWO,model)); |
| | | } |
| | | if(Constants.equalsInteger(model.getZlPayType(), Constants.ZERO)){ |
| | | //妿æ¯ä¸æ¬¡æ§ä»æ¸
|
| | | billList1.addAll(getBillsByParamOnce(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | billList1.addAll(getBillsByParamOnce(model,details1,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getZlPayType(), Constants.ONE)){ |
| | | //妿æ¯ä¸ä¸ªæä¸ä» |
| | | billList1.addAll(getBillsByParam3Months(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | billList1.addAll(getBillsByParam3Months(model,details1,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getZlPayType(), Constants.TWO)){ |
| | | //妿å
个æä¸ä» |
| | | billList1.addAll(getBillsByParam6Months(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | billList1.addAll(getBillsByParam6Months(model,details1,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getZlPayType(), Constants.THREE)){ |
| | | //妿ä¸å¹´ä¸ä» |
| | | billList1.addAll(getBillsByParam1Year(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | billList1.addAll(getBillsByParam1Year(model,details1,model.getZlFreeStartDate(),model.getZlFreeEndDate())); |
| | | } |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | //妿ç©ä¸æ¡æ¬¾ |
| | | if(Constants.formatBigdecimal(model.getWyDeposit()).compareTo(new BigDecimal(0))>0){ |
| | | //妿æç§èµæ¼é |
| | | billList2.add(initDepoistBill(Constants.FOUR,model)); |
| | | billList2.add(initDepoistBill(Constants.THREE,model)); |
| | | } |
| | | if(Constants.equalsInteger(model.getWyPayType(), Constants.ZERO)){ |
| | | //妿æ¯ä¸æ¬¡æ§ä»æ¸
|
| | | billList2.addAll(getBillsByParamOnce(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | billList2.addAll(getBillsByParamOnce(model,details2,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getWyPayType(), Constants.ONE)){ |
| | | //妿æ¯ä¸ä¸ªæä¸ä» |
| | | billList2.addAll(getBillsByParam3Months(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | billList2.addAll(getBillsByParam3Months(model,details2,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getWyPayType(), Constants.TWO)){ |
| | | //妿å
个æä¸ä» |
| | | billList2.addAll(getBillsByParam6Months(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | billList2.addAll(getBillsByParam6Months(model,details2,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | }else if(Constants.equalsInteger(model.getWyPayType(), Constants.THREE)){ |
| | | //妿ä¸å¹´ä¸ä» |
| | | billList2.addAll(getBillsByParam1Year(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | billList2.addAll(getBillsByParam1Year(model,details2,model.getWyFreeStartDate(),model.getWyFreeEndDate())); |
| | | } |
| | | } |
| | | |
| | | if(model.getBillType() == 0){ |
| | | model.setBillList(billList1); |
| | | }else if(model.getBillType() == 0){ |
| | | }else if(model.getBillType() == 1){ |
| | | model.setBillList(billList2); |
| | | } |
| | | int num =1; |
| | | for(int i=0;i<billList1.size();i++){ |
| | | if(Constants.equalsInteger( billList1.get(i).getCostType(),Constants.ZERO)){ |
| | | billList1.get(i).setSortnum(num++); |
| | | } |
| | | } |
| | | num =1; |
| | | for(int i=0;i<billList2.size();i++){ |
| | | if(Constants.equalsInteger( billList2.get(i).getCostType(),Constants.ONE)){ |
| | | billList2.get(i).setSortnum(num++); |
| | | } |
| | | } |
| | | if(model.getId()!=null){ |
| | | for(int i=0;i<billList1.size();i++){ |
| | | billList1.get(i).setSortnum(i+1); |
| | | } |
| | | for(int i=0;i<billList2.size();i++){ |
| | | billList2.get(i).setSortnum(i+1); |
| | | } |
| | | ywContractBillMapper.insert(billList1); |
| | | ywContractBillMapper.insert(billList2); |
| | | } |
| | | } |
| | | |
| | | private YwContractBill initDepoistBill(int type, YwContract model) { |
| | | private YwContractBill initDepoistBill(int type, YwContract model ) { |
| | | YwContractBill bill = new YwContractBill(); |
| | | bill.setCreateDate(model.getEditDate()); |
| | | bill.setCreator(model.getEditor()); |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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.addMonthToDate(startDate,monthSix*6)); |
| | | } |
| | | return list; |
| | | } |
| | |
| | | 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.addMonthToDate(startDate,monthThree*3)); |
| | | } |
| | | return list; |
| | | } |
| | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | 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); |
| | | |
| | | |
| | | 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)){ |
| | |
| | | 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=å
æ¯æ |
| | |
| | | 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; |
| | | } |
| | |
| | | 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); |
| | | } |
| | | return list; |
| | |
| | | bill.setIsdeleted(Constants.ZERO); |
| | | bill.setContractId(model.getId()); |
| | | bill.setStatus(Constants.ZERO); |
| | | bill.setPayStatus(Constants.ZERO); |
| | | bill.setDetailId(d.getId()); |
| | | bill.setCostType(d.getType()); |
| | | bill.setType(Constants.ZERO); |
| | |
| | | |
| | | private BigDecimal getAreasNumBYRooms(List<YwRoom> roomList) { |
| | | BigDecimal data= new BigDecimal(0); |
| | | for(YwRoom r :roomList){ |
| | | data = data.add(Constants.formatBigdecimal(r.getArea())); |
| | | if(roomList!=null){ |
| | | for(YwRoom r :roomList){ |
| | | data = data.add(Constants.formatBigdecimal(r.getArea())); |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | |
| | | 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){ |
| | |
| | | |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ååæææç»ææ¶é´ä¸å¾æ©äºå¼å§æ¶é´ï¼"); |
| | | } |
| | | |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | if( model.getZlDeposit() == null |
| | | ||model.getZlPayType() == null |
| | | || model.getZlPayType()>3 |
| | |
| | | ||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(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çç§èµæ¡æ¬¾å
ç§æä¿¡æ¯ï¼"); |
| | | } |
| | | 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 |
| | |
| | | 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(),"对ä¸èµ·ï¼ç§èµæ¡æ¬¾åªæéæ©ä¸æ¬¡æ§ä»æ¬¾æ¶ï¼æè½éæ©è¯¥ææ¯åºæ¶è´¹ï¼"); |
| | |
| | | } |
| | | } |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO ) |
| | | || Constants.equalsInteger(model.getType(),Constants.TWO)){ |
| | | || Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | if( model.getWyDeposit() == null |
| | | ||model.getWyPayType() == null |
| | | || model.getWyPayType()>3 |
| | |
| | | ){ |
| | | 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(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çç©ä¸æ¡æ¬¾å
ç§æä¿¡æ¯ï¼"); |
| | | } |
| | | 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 |
| | | ||d.getEditDate() == null |
| | | ||d.getEndDate() == null |
| | | ||d.getPrice() == null |
| | | ||d.getCircleType() == null |
| | | || d.getCircleType()>6 |
| | |
| | | } |
| | | 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)){ |
| | |
| | | } |
| | | } |
| | | |
| | | YwProject project = projectMapper.selectById(model.getCompanyId()); |
| | | YwProject project = projectMapper.selectById(model.getProjectId()); |
| | | if(project ==null || Constants.equalsInteger(project.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®ç项ç®ä¿¡æ¯ï¼"); |
| | | } |
| | |
| | | for(YwRoom r : rooms){ |
| | | model.setTotalArea(model.getTotalArea().add(Constants.formatBigdecimal(r.getArea()))); |
| | | } |
| | | model.setRoomList(rooms); |
| | | YwCustomer customer = customerMapper.selectById(model.getRenterId()); |
| | | if(customer ==null || Constants.equalsInteger(customer.getIsdeleted(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼éæ©ç§å®¢ä¿¡æ¯ä¸åå¨ï¼è¯·è¿åå·æ°éè¯ï¼"); |
| | |
| | | log.setObjType(type.getKey()); |
| | | log.setParam1(param1); |
| | | log.setParam2(param2); |
| | | log.setContent(param2); |
| | | log.setTitle(type.getNoteinfo()); |
| | | ywWorkorderLogMapper.insert(log); |
| | | } |
| | |
| | | .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 ) |
| | | .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(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){ |
| | | //ååéä»¶ |
| | |
| | | .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())); |
| | |
| | | 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()); |