package com.yc.MaintenanceFee.service.impl; import com.yc.MaintenanceFee.entiy.Receipt; import com.yc.MaintenanceFee.entiy.ReceiptEntity; import com.yc.MaintenanceFee.service.ReceiptService; import com.yc.MaintenanceFee.utils.ReceiptUtils; import com.yc.action.grid.GridUtils; import com.yc.service.BaseService; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * @USER: xinyb_ * @DATE: 2021-12-04 15:27 */ @Service public class ReceiptServiceImpl extends BaseService implements ReceiptService { @Override public Receipt QueryReceipt(String docCode, Integer docStatus) { try { String sql="set nocount on \n " + " declare @DocCode varchar(50) = " + GridUtils.prossSqlParm(docCode)+ " select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + " a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + " c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday,case when exists(select 1 from t150101log d " + " where a.doccode = d.RefDoccode and isnull(d.ThirdOrderNo,'') <> '' ) then 1 else 0 end as isPaid \n" + " from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + " join t120301D c on c.doccode=b.SODoccode \n" + " where a.DocCode=@DocCode \n"; return ReceiptUtils.getReceipt(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class))); } catch (Exception e) { throw e; } } @Override public List selectReceipt(String cltCode, Integer docStatus) { try { String sql="set nocount on \n" + " select a.DocCode,a.FormID,a.DocDate,a.EnterDate,a.DocType,a.RefCode,a.CompanyName,a.DocStatus,a.CltCode,\n" + " a.CltName,a.HDMemo,a.SumNatAmount,a.SumAmount,b.SODocCode,b.SOFormId,b.natAmount,b.amount,\n" + " c.MatName,c.Digit,c.TotalMoney,c.FYendday,c.FYbeginday ,case when exists(select 1 from t150101log d " + " where a.doccode = d.RefDoccode and isnull(d.ThirdOrderNo,'') <> '' ) then 1 else 0 end as isPaid \n" + " from t150101H a join t150101D b on a.DocCode=b.DocCode\n" + " join t120301D c on c.doccode=b.SODoccode\n" + " where a.CltCode='"+cltCode+"' and a.DocStatus="+docStatus; return ReceiptUtils.getReceipts(super.jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ReceiptEntity.class))); } catch (Exception e) { throw e; } } @Override public void doCancelReceipt(String skCode) { try { String sql = " set nocount on\n" + " declare @docCode varchar(50)='"+skCode+"' \n" + " exec p150101v4 @doccode \n"; super.jdbcTemplate.update(sql); } catch (Exception e) { throw e; } } @Override public List> getReceiptStatus(String docCode) { try { String sql="set nocount on \n"+ " declare @doc varchar(max) = '" + docCode + "' \n" + " select (case when a.DocStatus=0 then 1 else 0 end) docstatus,b.sodoccode,a.doccode from t150101H a left join t150101D b on a.doccode=b.doccode " + "where b.SODoccode in(select list from GetInStr(@doc)) and a.DocStatus=0"; return super.jdbcTemplate.queryForList(sql); }catch (Exception e){ throw e; } } }