|
@@ -9,6 +9,7 @@ import com.bz.smart_city.dto.pay.PayMessagesendrecordDto;
|
|
|
import com.bz.smart_city.dto.pay.PayTransactiondetails;
|
|
|
import com.bz.smart_city.dto.pay.PayTransactiondetailsDto;
|
|
|
import com.bz.smart_city.dto.pay.payfee.PrintInvoiceData;
|
|
|
+import com.bz.smart_city.dto.pay.payfee.PrintReceivedInfo;
|
|
|
import com.bz.smart_city.entity.pay.PayInvoice;
|
|
|
import com.bz.smart_city.entity.pay.PayPayReceived;
|
|
|
import com.bz.smart_city.service.pay.PayinvoiceService;
|
|
@@ -38,6 +39,9 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
|
|
|
public void insert(PayInvoice payInvoice) {
|
|
|
payInvoiceMapper.insert(payInvoice);
|
|
|
}
|
|
|
+ public PayInvoiceDto get(BigInteger id) {
|
|
|
+ return payInvoiceMapper.get(id);
|
|
|
+ }
|
|
|
|
|
|
public List<PayInvoiceDto> findList(String condition, Integer state, String startTime, String endTime) {
|
|
|
LoginUser loginUser= UserUtil.getCurrentUser();
|
|
@@ -107,16 +111,19 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
|
|
|
invoice.setRemarks("");
|
|
|
|
|
|
//获取同批次号的交易明细
|
|
|
- List<PayTransactiondetailsDto> payTransactiondetailsList=payInvoiceMapper.findTransByPayseriesno(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
+ List<PayTransactiondetails> payTransactiondetailsList=payInvoiceMapper.findTransByPayseriesno(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
|
|
|
- for(PayTransactiondetailsDto payTransactiondetailsDto:payTransactiondetailsList){
|
|
|
+ for(PayTransactiondetails payTransactiondetails:payTransactiondetailsList){
|
|
|
//转预存或充值金额
|
|
|
- if(payTransactiondetailsDto.getPayway()!=4&&(payTransactiondetailsDto.getTranstype()==1||payTransactiondetailsDto.getTranstype()==4)){
|
|
|
- countReceivedamount = countReceivedamount.add(payTransactiondetailsDto.getTransamount()!=null?payTransactiondetailsDto.getTransamount():BigDecimal.ZERO);
|
|
|
+ if(payTransactiondetails.getPayway()!=4&&(payTransactiondetails.getTranstype()==1||payTransactiondetails.getTranstype()==4)){
|
|
|
+ countReceivedamount = countReceivedamount.add(payTransactiondetails.getTransamount()!=null?payTransactiondetails.getTransamount():BigDecimal.ZERO);
|
|
|
|
|
|
- invoice.setAccountId(payTransactiondetailsDto.getAccountId());
|
|
|
- invoice.setAccountname(payTransactiondetailsDto.getAccountname());
|
|
|
- invoice.setAccountnumber(payTransactiondetailsDto.getAccountnumber());
|
|
|
+ invoice.setAccountId(payTransactiondetails.getAccountId());
|
|
|
+ invoice.setAccountname(payTransactiondetails.getAccountname());
|
|
|
+ invoice.setAccountnumber(payTransactiondetails.getAccountnumber());
|
|
|
+ invoice.setOfficeId(payTransactiondetails.getOfficeId());
|
|
|
+ invoice.setYear(payTransactiondetails.getYear());
|
|
|
+ invoice.setMonth(payTransactiondetails.getMonth());
|
|
|
}
|
|
|
}
|
|
|
//获取同批次号的实收信息
|
|
@@ -130,6 +137,9 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
|
|
|
invoice.setAccountId(received.getAccountId());
|
|
|
invoice.setAccountname(received.getAccountname());
|
|
|
invoice.setAccountnumber(received.getAccountnumber());
|
|
|
+ invoice.setOfficeId(received.getOfficeId());
|
|
|
+ invoice.setYear(received.getYear());
|
|
|
+ invoice.setMonth(received.getMonth());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -147,28 +157,101 @@ public class PayInvoiceServiceImpl implements PayinvoiceService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 仅充值
|
|
|
+ * 打印收据——仅充值
|
|
|
* @param payseriesno
|
|
|
* @return
|
|
|
*/
|
|
|
public PrintInvoiceData getPrintDataOfTrans(String payseriesno){
|
|
|
-// PrintInvoiceData printInvoiceData=printNoticeDao.getPrintDataOfTran(payseriesno);
|
|
|
-// if(printInvoiceData!=null){
|
|
|
-// PrintInvoiceData wateruserdData=printNoticeDao.getLastWaterUsedRecord(printInvoiceData.getAccountId(), printInvoiceData.getCreateDate());
|
|
|
-// if(wateruserdData!=null){
|
|
|
-// printInvoiceData.setReading(wateruserdData.getReading());
|
|
|
-// printInvoiceData.setRecorddate(wateruserdData.getRecorddate());
|
|
|
-// }
|
|
|
-// printInvoiceData.setPaydate(printInvoiceData.getCreateDate());
|
|
|
-// }
|
|
|
-// return printInvoiceData;
|
|
|
- return null;
|
|
|
+ LoginUser loginUser=UserUtil.getCurrentUser();
|
|
|
+ PrintInvoiceData printInvoiceData=payInvoiceMapper.getPrintDataOfTran(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
+ if(printInvoiceData!=null){
|
|
|
+ PrintInvoiceData wateruserdData=payInvoiceMapper.getLastWaterUsedRecord(printInvoiceData.getAccountId(), printInvoiceData.getCreateDate(),loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
+ if(wateruserdData!=null){
|
|
|
+ printInvoiceData.setReading(wateruserdData.getReading());
|
|
|
+ printInvoiceData.setRecorddate(wateruserdData.getRecorddate());
|
|
|
+ }
|
|
|
+ DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ if(printInvoiceData.getCreateDate()!=null){
|
|
|
+ printInvoiceData.setPaydate(df.format(printInvoiceData.getCreateDate()));
|
|
|
+ }else{
|
|
|
+ printInvoiceData.setPaydate(df.format(LocalDateTime.now()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ printInvoiceData.setInvoiceNo(
|
|
|
+ DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
|
|
|
+ return printInvoiceData;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 打印收据——缴纳欠费(transtype == null || (transtype ==2 ||transtype ==4))
|
|
|
+ * @param payseriesno
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public PrintInvoiceData getPrintDataOfReceived(String payseriesno){
|
|
|
- return null;
|
|
|
- }
|
|
|
+ LoginUser loginUser=UserUtil.getCurrentUser();
|
|
|
+ //收费区间信息和抄表信息
|
|
|
+ PrintInvoiceData printInvoiceData=payInvoiceMapper.getDateRangeInfoPrint(payseriesno,loginUser.getSiteId(),loginUser.getCustomerId());
|
|
|
+ DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ if(printInvoiceData.getCreateDate()!=null){
|
|
|
+ printInvoiceData.setPaydate(df.format(printInvoiceData.getCreateDate()));
|
|
|
+ }else{
|
|
|
+ printInvoiceData.setPaydate(df.format(LocalDateTime.now()));
|
|
|
+ }
|
|
|
+ printInvoiceData.setDateRange(
|
|
|
+ printInvoiceData.getMaxPeriod()/12+""+String.format("%02d",printInvoiceData.getMaxPeriod()%12)+"————"+
|
|
|
+ printInvoiceData.getMinPeriod()/12+""+String.format("%02d",printInvoiceData.getMinPeriod()%12) );
|
|
|
|
|
|
|
|
|
+ //缴费用户信息
|
|
|
+ PrintInvoiceData accountInfoPrint =payInvoiceMapper.getAccountInfoPrint(printInvoiceData.getAccountId());
|
|
|
+ printInvoiceData.setAccountname(accountInfoPrint.getAccountname());
|
|
|
+ printInvoiceData.setAccountnumber(accountInfoPrint.getAccountnumber());
|
|
|
+ printInvoiceData.setAddress(accountInfoPrint.getAddress());
|
|
|
+ printInvoiceData.setRemaining(accountInfoPrint.getRemaining());
|
|
|
|
|
|
+ //余额信息(/*--交易前后余额(先按批次号查询,没有再查询交易后第一条记录,还有没有就取预存账户余额)*/)
|
|
|
+ PrintInvoiceData payfeeRemainingPrint= payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(),null,payseriesno);
|
|
|
+ if(payfeeRemainingPrint !=null || payfeeRemainingPrint.getRemaining() != null){
|
|
|
+ printInvoiceData.setRemaining(payfeeRemainingPrint.getRemaining());
|
|
|
+ printInvoiceData.setLastRemaining(payfeeRemainingPrint.getLastRemaining());
|
|
|
+ }else{
|
|
|
+ payfeeRemainingPrint= payInvoiceMapper.getPayfeeRemainingPrint(printInvoiceData.getAccountId(),printInvoiceData.getMaxPeriod(),null);
|
|
|
+ if(payfeeRemainingPrint !=null && payfeeRemainingPrint.getRemaining() != null){
|
|
|
+ printInvoiceData.setRemaining(payfeeRemainingPrint.getRemaining());
|
|
|
+ printInvoiceData.setLastRemaining(payfeeRemainingPrint.getRemaining());
|
|
|
+ }else{
|
|
|
+ printInvoiceData.setLastRemaining(printInvoiceData.getRemaining());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //收费信息
|
|
|
+ List<PrintReceivedInfo> payfeeInfoPrint = payInvoiceMapper.getPayfeeInfoPrint(printInvoiceData.getMinPeriod(),printInvoiceData.getMaxPeriod(),printInvoiceData.getAccountId());
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal receivedFee=BigDecimal.ZERO;
|
|
|
+ BigDecimal debt=BigDecimal.ZERO;
|
|
|
+ //计算出缴纳的欠费金额
|
|
|
+ for(PrintReceivedInfo receivedInfo:payfeeInfoPrint){
|
|
|
+ debt=debt.add(receivedInfo.getReceivedamount());
|
|
|
+ }
|
|
|
+ //计算出实收金额
|
|
|
+ receivedFee= debt.add(printInvoiceData.getRemaining()).subtract(printInvoiceData.getLastRemaining());
|
|
|
+ printInvoiceData.setReceivablefee(debt);
|
|
|
+ printInvoiceData.setTransamount(receivedFee);
|
|
|
+ printInvoiceData.setPrintReceivedInfo(payfeeInfoPrint);
|
|
|
+ printInvoiceData.setInvoiceNo(
|
|
|
+ DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())+""+(int)(Math.random()*1000));
|
|
|
+ return printInvoiceData;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public String findPayseriesnoByPrint(BigInteger id,Integer type){
|
|
|
+ return payInvoiceMapper.findPayseriesnoByPrint(id,type);
|
|
|
+ }
|
|
|
|
|
|
+ public void cancelPrintInfo(BigInteger id){
|
|
|
+ LoginUser loginUser=UserUtil.getCurrentUser();
|
|
|
+ payInvoiceMapper.deleteTransPrint(id);
|
|
|
+ payInvoiceMapper.deleteReceivedPrint(id);
|
|
|
+ payInvoiceMapper.cancelPayInvoice(id,LocalDateTime.now(),BigInteger.valueOf(loginUser.getId()));
|
|
|
+ }
|
|
|
}
|