| | |
| | | import com.java110.fee.api.FeeDiscountApi; |
| | | import com.java110.fee.cmd.fee.PayFeeCmd; |
| | | import com.java110.fee.cmd.fee.PayFeePreCmd; |
| | | import com.java110.fee.feeMonth.IPayFeeMonth; |
| | | import com.java110.intf.IImportPropertyWhiteListfFlowServiceSMO; |
| | | import com.java110.intf.common.ICarInoutInnerServiceSMO; |
| | | import com.java110.intf.community.ICommunityInnerServiceSMO; |
| | |
| | | importRoomFee.setContractId(data.getString("licensePlate")); |
| | | importRoomFee.setInvoiceNo(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N"); |
| | | importRoomFee.setObjType("7777"); |
| | | LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter); |
| | | LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter); |
| | | importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate))); |
| | | importRoomFee.setCycle((DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFee.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFee.getEndTime()) |
| | | )) + ""); |
| | | if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){ |
| | | importRoomFee.setCycle("-"+importRoomFee.getCycle()); |
| | | } |
| | |
| | | importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N"); |
| | | // if(importRoomFee.getPayerObjName()) |
| | | importRoomFee.setObjType("6666"); |
| | | LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter); |
| | | LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter); |
| | | importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate))); |
| | | importRoomFee.setCycle((DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFee.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFee.getEndTime()) |
| | | )) + ""); |
| | | if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){ |
| | | importRoomFee.setCycle("-"+importRoomFee.getCycle()); |
| | | } |
| | |
| | | importRoomFee.setAmount(data.getString("chargeAmount")); |
| | | importRoomFee.setStaffName(data.getString("charger")); |
| | | importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N"); |
| | | importRoomFee.setCycle((DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFee.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFee.getEndTime()) |
| | | )) + ""); |
| | | if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){ |
| | | importRoomFee.setCycle("-"+importRoomFee.getCycle()); |
| | | } |
| | | // if(importRoomFee.getPayerObjName()) |
| | | importRoomFees.add(importRoomFee); |
| | | } |
| | |
| | | } |
| | | |
| | | try{ |
| | | if(assetImportLogDetailDto.getOutTime() == null) { |
| | | assetImportLogDetailDto.setOutTime("2050-01-01 23:59:59"); |
| | | } |
| | | if(!(ListUtil.isNull(importRoomFees))){ |
| | | if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() < DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime() && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){ |
| | | ImportRoomFee original = importRoomFees.get(0); |
| | |
| | | importRoomFees.add(importRoomFee1); |
| | | importRoomFees.add(importRoomFee2); |
| | | } |
| | | // ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1); |
| | | // if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() < DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime() && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")) |
| | | if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() > DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime() |
| | | && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){ |
| | | ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1); |
| | | double cycle = Double.parseDouble(importRoomFeeLast.getCycle()); |
| | | double amount = Double.parseDouble(importRoomFeeLast.getAmount()); |
| | | |
| | | ImportRoomFee importRoomFeeEnd = (ImportRoomFee) importRoomFeeLast.clone(); |
| | | |
| | | importRoomFeeLast.setEndTime(assetImportLogDetailDto.getOutTime() + " 23:59:59"); |
| | | double cycle1 = (DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFeeLast.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFeeLast.getEndTime()) |
| | | )); |
| | | double amount1 = amount/cycle * cycle1; |
| | | |
| | | importRoomFeeEnd.setStartTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime()),1) + " 00:00:00"); |
| | | importRoomFeeEnd.setCycle(DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFeeEnd.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFeeEnd.getEndTime()) |
| | | ) + ""); |
| | | importRoomFeeEnd.setAmount(amount - amount1 + ""); |
| | | importRoomFeeEnd.setState("1900"); |
| | | importRoomFees.add(importRoomFeeEnd); |
| | | } |
| | | importFeeDetails(importRoomFees.get(0).getStoreId(), importRoomFees.get(0).getUserId(), importRoomFees, importRoomFees.get(0).getBatchId()); |
| | | } |
| | | if(!(ListUtil.isNull(importCarFees))){ |
| | | if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){ |
| | | importRoomFees = importCarFees; |
| | | ImportRoomFee importRoomFee1 = importRoomFees.get(0); |
| | | ImportRoomFee importRoomFee2 = importRoomFees.get(0); |
| | | importRoomFees = importCarFees; |
| | | if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() < DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime() && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){ |
| | | ImportRoomFee original = importRoomFees.get(0); |
| | | ImportRoomFee importRoomFee1 = (ImportRoomFee) original.clone(); // 克隆新对象 |
| | | ImportRoomFee importRoomFee2 = (ImportRoomFee) original.clone(); // 克隆另一个新对象 |
| | | double cycle = (DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFee1.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFee1.getEndTime()) |
| | | )) ; |
| | | double amount = Double.parseDouble(importRoomFee1.getAmount()); |
| | | importRoomFees = new ArrayList<>(); |
| | | importRoomFee1.setEndTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]),-1) + " 23:59:59"); |
| | | double cycle = Double.parseDouble(importRoomFee1.getCycle()); |
| | | double amount = Double.parseDouble(importRoomFee1.getAmount()); |
| | | importRoomFee1.setCycle((DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFee1.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFee1.getEndTime()) |
| | |
| | | |
| | | importRoomFees.add(importRoomFee1); |
| | | importRoomFees.add(importRoomFee2); |
| | | importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importRoomFees, importCarFees.get(0).getBatchId()); |
| | | } |
| | | else{ |
| | | importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importCarFees, importCarFees.get(0).getBatchId()); |
| | | if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() > DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime() |
| | | && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){ |
| | | ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1); |
| | | double cycle = Double.parseDouble(importRoomFeeLast.getCycle()); |
| | | double amount = Double.parseDouble(importRoomFeeLast.getAmount()); |
| | | |
| | | ImportRoomFee importRoomFeeEnd = (ImportRoomFee) importRoomFeeLast.clone(); |
| | | |
| | | importRoomFeeLast.setEndTime(assetImportLogDetailDto.getOutTime() + " 23:59:59"); |
| | | double cycle1 = (DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFeeLast.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFeeLast.getEndTime()) |
| | | )); |
| | | double amount1 = amount/cycle * cycle1; |
| | | |
| | | importRoomFeeEnd.setStartTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime()),1) + " 00:00:00"); |
| | | importRoomFeeEnd.setCycle(DateUtil.dayCompare( |
| | | DateUtil.getDateFromStringA(importRoomFeeEnd.getStartTime()), |
| | | DateUtil.getDateFromStringA(importRoomFeeEnd.getEndTime()) |
| | | ) + ""); |
| | | importRoomFeeEnd.setAmount(amount - amount1 + ""); |
| | | importRoomFeeEnd.setState("1900"); |
| | | importRoomFees.add(importRoomFeeEnd); |
| | | } |
| | | importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importRoomFees, importCarFees.get(0).getBatchId()); |
| | | } |
| | | }catch (IllegalStateException e){ |
| | | throw new IllegalArgumentException(e.getMessage()); |
| | |
| | | * |
| | | * @param importRoomFee |
| | | */ |
| | | |
| | | |
| | | @Autowired |
| | | private IPayFeeMonth payFeeMonthImpl; |
| | | |
| | | private void importFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId, String batchId) { |
| | | |
| | | if (importRoomFee.getState() == null){ |
| | |
| | | } |
| | | } |
| | | feeDto2.setCommunityId(importRoomFee.getCommunityId()); |
| | | if (importRoomFee.getState().equals("1100") || importRoomFee.getState().equals("1300") || importRoomFee.getState().equals("1600")) { |
| | | if (importRoomFee.getState().equals("1100") || importRoomFee.getState().equals("1300") || importRoomFee.getState().equals("1600") || importRoomFee.getState().equals("1900")) { |
| | | |
| | | } |
| | | else { |
| | |
| | | if (!(importRoomFee.getFrequency().equals("退费"))) { |
| | | feeDtos.removeIf(feeDto -> "2009001".equals(feeDto.getState())); |
| | | } |
| | | if(feeDtos.size() == 0 && (importRoomFee.getState() == null || !importRoomFee.getState().equals("1600"))){ |
| | | if(feeDtos.size() == 0 && (importRoomFee.getState() == null || !importRoomFee.getState().equals("1600")|| importRoomFee.getState().equals("1900"))){ |
| | | updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("费用项"+importRoomFee.getFeeName()+"不存在")); |
| | | |
| | | throw new IllegalArgumentException("费用记录"+importRoomFee.getFeeName()+"不存在"); |
| | |
| | | // feeInnerServiceSMOImpl.updateFee(payFeePo); |
| | | // return; |
| | | // } else |
| | | if (importRoomFee.getState() != null && importRoomFee.getState().equals("1600")){ |
| | | if (importRoomFee.getState() != null && (importRoomFee.getState().equals("1600") || importRoomFee.getState().equals("1900"))){ |
| | | payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId)); |
| | | payFeeDetailPo.setReceivableAmount(computeFeeByCycle(tmpFeeDto,importRoomFee)+""); |
| | | payFeeDetailPo.setDiscountAmount("0"); |
| | | int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo); |
| | | |
| | | payFeeMonthImpl.doGeneratorFeeMonths(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | |
| | | payFeeMonthImpl.doGeneratorOweFees(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | return; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | if (saved < 1) { |
| | | payFeeMonthImpl.doGeneratorFeeMonths(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | |
| | | payFeeMonthImpl.doGeneratorOweFees(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | return; |
| | | } |
| | | |
| | |
| | | // int i = feeInnerServiceSMOImpl.updateFee(feeInfo); |
| | | |
| | | if (tmpFeeDto.getEndTime().getTime() >= DateUtil.getDateFromStringA(importRoomFee.getEndTime()).getTime() + 2000 || (importRoomFee.getState().equals("1100") || importRoomFee.getState().equals("1300"))) { |
| | | payFeeMonthImpl.doGeneratorFeeMonths(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | |
| | | payFeeMonthImpl.doGeneratorOweFees(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | return; |
| | | } |
| | | |
| | |
| | | int i = feeInnerServiceSMOImpl.updateFee(payFee); |
| | | } |
| | | } |
| | | |
| | | payFeeMonthImpl.doGeneratorFeeMonths(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | |
| | | payFeeMonthImpl.doGeneratorOweFees(Collections.singletonList(payFeeDetailPo.getFeeId()), payFeeDetailPo.getCommunityId()); |
| | | } |
| | | |
| | | private double computeFee(FeeDto fee,ImportRoomFee importRoomFee) { |