parent
6c1bbda6db
commit
32cd8a789a
@ -0,0 +1,47 @@ |
|||||||
|
package com.sinosoft.bfs.config; |
||||||
|
|
||||||
|
import com.zaxxer.hikari.HikariDataSource; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import javax.sql.DataSource; |
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
@Configuration |
||||||
|
public class EbsDataSourceConfig { |
||||||
|
/* @Value("${ebs.datasource.url}") |
||||||
|
private String url; |
||||||
|
|
||||||
|
@Value("${ebs.datasource.username}") |
||||||
|
private String username; |
||||||
|
|
||||||
|
@Value("${ebs.datasource.password}") |
||||||
|
private String password; |
||||||
|
|
||||||
|
@Value("${ebs.datasource.driver-class-name:oracle.jdbc.OracleDriver}") |
||||||
|
private String driverClassName; |
||||||
|
|
||||||
|
@Value("${ebs.datasource.maximum-pool-size:10}") |
||||||
|
private int maximumPoolSize; |
||||||
|
|
||||||
|
@Value("${ebs.datasource.minimum-idle:5}") |
||||||
|
private int minimumIdle; |
||||||
|
|
||||||
|
@Bean(name = "ebsDataSource") |
||||||
|
public DataSource ebsDataSource() { |
||||||
|
HikariDataSource dataSource = new HikariDataSource(); |
||||||
|
dataSource.setJdbcUrl(url); |
||||||
|
dataSource.setUsername(username); |
||||||
|
dataSource.setPassword(password); |
||||||
|
dataSource.setDriverClassName(driverClassName); |
||||||
|
dataSource.setMaximumPoolSize(maximumPoolSize); |
||||||
|
dataSource.setMinimumIdle(minimumIdle); |
||||||
|
dataSource.setConnectionTimeout(30000); |
||||||
|
dataSource.setIdleTimeout(600000); |
||||||
|
dataSource.setMaxLifetime(1800000); |
||||||
|
dataSource.addDataSourceProperty("cachePrepStmts", "true"); |
||||||
|
dataSource.addDataSourceProperty("prepStmtCacheSize", "250"); |
||||||
|
dataSource.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); |
||||||
|
return dataSource; |
||||||
|
} |
||||||
|
*/ |
||||||
|
} |
||||||
@ -0,0 +1,52 @@ |
|||||||
|
package com.sinosoft.bfs.core.datatrans; |
||||||
|
|
||||||
|
|
||||||
|
import com.sinosoft.bfs.core.constant.BFSConstants; |
||||||
|
import com.sinosoft.bfs.domain.vo.FiCerdataGatherVo; |
||||||
|
import com.sinosoft.bfs.service.IEbsVoucherPushService; |
||||||
|
import com.sinosoft.bfs.service.IFiCerdataGatherService; |
||||||
|
import com.sinosoft.common.core.exception.ServiceException; |
||||||
|
import groovy.util.logging.Slf4j; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.cloud.context.config.annotation.RefreshScope; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
import static cn.dev33.satoken.SaManager.log; |
||||||
|
|
||||||
|
@Service |
||||||
|
@Slf4j |
||||||
|
@RefreshScope |
||||||
|
public class GatherToEbs { |
||||||
|
@Autowired |
||||||
|
private IFiCerdataGatherService gatherService; |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private IEbsVoucherPushService iEbsVoucherPushService; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void sendToEbs(List<FiCerdataGatherVo> value) { |
||||||
|
try { |
||||||
|
log.info("开始推送凭证到EBS,共{}条数据", value.size()); |
||||||
|
iEbsVoucherPushService.pushVouchersToEbs(value); |
||||||
|
value.forEach(vo -> { |
||||||
|
vo.setStatus(BFSConstants.STATUS_SUCCESS); |
||||||
|
vo.setReturnType("S"); |
||||||
|
vo.setReturnMsg("成功推送到EBS"); |
||||||
|
}); |
||||||
|
gatherService.updateBatch(value); |
||||||
|
log.info("成功推送{}条凭证到EBS", value.size()); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error("推送凭证到EBS失败", e); |
||||||
|
value.forEach(vo -> { |
||||||
|
vo.setStatus(BFSConstants.STATUS_FAILED); |
||||||
|
vo.setReturnMsg("推送EBS失败:" + e.getMessage()); |
||||||
|
}); |
||||||
|
gatherService.updateBatch(value); |
||||||
|
throw new ServiceException("推送凭证到EBS失败:" + e.getMessage()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,83 @@ |
|||||||
|
package com.sinosoft.bfs.domain; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import lombok.Getter; |
||||||
|
import lombok.Setter; |
||||||
|
|
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.util.Date; |
||||||
|
@Setter |
||||||
|
@Getter |
||||||
|
public class EbsGlInterface { |
||||||
|
private Long interfaceId; |
||||||
|
private String status; |
||||||
|
private String ledgerFlag; |
||||||
|
private Date accountingDate; |
||||||
|
private String currencyCode; |
||||||
|
private Date dateCreated; |
||||||
|
private String actualFlag; |
||||||
|
private String sourceBatchId; |
||||||
|
private Long sourceLineId; |
||||||
|
private String userJeCategoryName; |
||||||
|
private String userJeSourceName; |
||||||
|
private Date currencyConversionDate; |
||||||
|
private String userCurrencyConversionType; |
||||||
|
private BigDecimal currencyConversionRate; |
||||||
|
private String importFlag; |
||||||
|
private Date importDate; |
||||||
|
private String errorMessage; |
||||||
|
private Date lastUpdateDate; |
||||||
|
private String docSeqNum; |
||||||
|
private String createdBy; |
||||||
|
private String lastUpdateBy; |
||||||
|
private String segment1; |
||||||
|
private String segment2; |
||||||
|
private String segment3; |
||||||
|
private String segment4; |
||||||
|
private String segment5; |
||||||
|
private String segment6; |
||||||
|
private String segment7; |
||||||
|
private String segment8; |
||||||
|
private String segment9; |
||||||
|
private String segment10; |
||||||
|
private String segment11; |
||||||
|
private BigDecimal enteredDr; |
||||||
|
private BigDecimal enteredCr; |
||||||
|
private BigDecimal accountedDr; |
||||||
|
private BigDecimal accountedCr; |
||||||
|
private Long docSequenceValue; |
||||||
|
private String reference1; |
||||||
|
private String reference2; |
||||||
|
private String reference3; |
||||||
|
private String reference4; |
||||||
|
private String reference5; |
||||||
|
private String reference10; |
||||||
|
private Long jeBatchId; |
||||||
|
private String periodName; |
||||||
|
private Long jeHeaderId; |
||||||
|
private Long jeLineNum; |
||||||
|
private Long chartOfAccountsId; |
||||||
|
private String functionalCurrencyCode; |
||||||
|
private String warningCode; |
||||||
|
private BigDecimal statAmount; |
||||||
|
private Long groupId; |
||||||
|
private Long requestId; |
||||||
|
private Long setOfBooksId; |
||||||
|
private String attributeCategory; |
||||||
|
private String attribute1; |
||||||
|
private String attribute2; |
||||||
|
private String attribute3; |
||||||
|
private String attribute4; |
||||||
|
private String attribute5; |
||||||
|
private String attribute6; |
||||||
|
private String attribute7; |
||||||
|
private String attribute8; |
||||||
|
private String attribute9; |
||||||
|
private String attribute10; |
||||||
|
private String attribute11; |
||||||
|
private String attribute12; |
||||||
|
private String attribute13; |
||||||
|
private String attribute14; |
||||||
|
private String attribute15; |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
package com.sinosoft.bfs.service; |
||||||
|
import com.sinosoft.bfs.domain.vo.FiCerdataGatherVo; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
public interface IEbsVoucherPushService { |
||||||
|
void pushVouchersToEbs(List<FiCerdataGatherVo> voucherList); |
||||||
|
|
||||||
|
void pushVouchersToEbsByBatchNo(List<FiCerdataGatherVo> voucherList); |
||||||
|
} |
||||||
@ -0,0 +1,332 @@ |
|||||||
|
package com.sinosoft.bfs.service.impl; |
||||||
|
import com.sinosoft.bfs.domain.EbsGlInterface; |
||||||
|
import com.sinosoft.bfs.domain.vo.FiCerdataGatherVo; |
||||||
|
import com.sinosoft.bfs.service.IEbsVoucherPushService; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.transaction.annotation.Transactional; |
||||||
|
import java.math.BigDecimal; |
||||||
|
import java.sql.*; |
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.format.DateTimeFormatter; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.List; |
||||||
|
import java.util.concurrent.atomic.AtomicLong; |
||||||
|
|
||||||
|
import static cn.dev33.satoken.SaManager.log; |
||||||
|
@Service |
||||||
|
public class EbsVoucherPushServiceImpl implements IEbsVoucherPushService{ |
||||||
|
// private final DataSource ebsDataSource;
|
||||||
|
|
||||||
|
@Value("${ebs.sequence.interface_id:CUX_GL_INTERFACE_GRP_S}") |
||||||
|
private String interfaceIdSequence; |
||||||
|
|
||||||
|
@Value("${ebs.default.ledger_flag:old}") |
||||||
|
private String defaultLedgerFlag; |
||||||
|
|
||||||
|
@Value("${ebs.default.actual_flag:A}") |
||||||
|
private String defaultActualFlag; |
||||||
|
|
||||||
|
@Value("${ebs.default.currency_code:CNY}") |
||||||
|
private String defaultCurrencyCode; |
||||||
|
|
||||||
|
@Value("${ebs.default.user_je_category_name:General}") |
||||||
|
private String defaultJeCategoryName; |
||||||
|
|
||||||
|
@Value("${ebs.default.user_je_source_name:BFS}") |
||||||
|
private String defaultJeSourceName; |
||||||
|
|
||||||
|
@Value("${ebs.default.currency_conversion_type:USER}") |
||||||
|
private String defaultCurrencyConversionType; |
||||||
|
|
||||||
|
@Value("${ebs.default.import_flag:N}") |
||||||
|
private String defaultImportFlag; |
||||||
|
|
||||||
|
@Value("${ebs.default.created_by:BFS_SYSTEM}") |
||||||
|
private String defaultCreatedBy; |
||||||
|
|
||||||
|
@Value("${ebs.chart_of_accounts_id:101}") |
||||||
|
private Long defaultChartOfAccountsId; |
||||||
|
|
||||||
|
@Value("${ebs.set_of_books_id:1}") |
||||||
|
private Long defaultSetOfBooksId; |
||||||
|
|
||||||
|
private static final AtomicLong sequenceGenerator = new AtomicLong(0); |
||||||
|
|
||||||
|
/* public EbsVoucherPushServiceImpl(@Qualifier("ebsDataSource") DataSource ebsDataSource) { |
||||||
|
this.ebsDataSource = ebsDataSource; |
||||||
|
}*/ |
||||||
|
|
||||||
|
@Override |
||||||
|
@Transactional(rollbackFor = Exception.class) |
||||||
|
public void pushVouchersToEbs(List<FiCerdataGatherVo> voucherList) { |
||||||
|
if (voucherList == null || voucherList.isEmpty()) { |
||||||
|
log.warn("凭证列表为空,无需推送"); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
log.info("开始推送凭证到EBS,共{}条数据", voucherList.size()); |
||||||
|
|
||||||
|
String sql = buildInsertSql(); |
||||||
|
|
||||||
|
/*try (Connection conn = ebsDataSource.getConnection(); |
||||||
|
PreparedStatement pstmt = conn.prepareStatement(sql)) { |
||||||
|
|
||||||
|
conn.setAutoCommit(false); |
||||||
|
|
||||||
|
int batchCount = 0; |
||||||
|
for (FiCerdataGatherVo voucher : voucherList) { |
||||||
|
try { |
||||||
|
EbsGlInterface ebsData = convertToEbsInterface(voucher); |
||||||
|
setParameters(pstmt, ebsData); |
||||||
|
pstmt.addBatch(); |
||||||
|
batchCount++; |
||||||
|
|
||||||
|
if (batchCount % 100 == 0) { |
||||||
|
pstmt.executeBatch(); |
||||||
|
log.info("已批量插入{}条凭证数据", batchCount); |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
log.error("转换凭证数据失败,voucherId:{}", voucher.getId(), e); |
||||||
|
throw new RuntimeException("转换凭证数据失败", e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (batchCount % 100 != 0) { |
||||||
|
pstmt.executeBatch(); |
||||||
|
} |
||||||
|
|
||||||
|
conn.commit(); |
||||||
|
log.info("成功推送{}条凭证到EBS", voucherList.size()); |
||||||
|
|
||||||
|
} catch (SQLException e) { |
||||||
|
log.error("推送凭证到EBS失败", e); |
||||||
|
throw new RuntimeException("推送凭证到EBS失败", e); |
||||||
|
}*/ |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void pushVouchersToEbsByBatchNo(List<FiCerdataGatherVo> voucherList) { |
||||||
|
pushVouchersToEbs(voucherList); |
||||||
|
} |
||||||
|
|
||||||
|
private String buildInsertSql() { |
||||||
|
return "INSERT INTO CUX.CUX_GL_INTERFACE_GRP (" + |
||||||
|
"INTERFACE_ID, STATUS, LEDGER_FLAG, ACCOUNTING_DATE, CURRENCY_CODE, " + |
||||||
|
"DATE_CREATED, ACTUAL_FLAG, SOURCE_BATCH_ID, SOURCE_LINE_ID, " + |
||||||
|
"USER_JE_CATEGORY_NAME, USER_JE_SOURCE_NAME, CURRENCY_CONVERSION_DATE, " + |
||||||
|
"USER_CURRENCY_CONVERSION_TYPE, CURRENCY_CONVERSION_RATE, IMPORT_FLAG, " + |
||||||
|
"IMPORT_DATE, ERROR_MESSAGE, LAST_UPDATE_DATE, DOC_SEQ_NUM, CREATED_BY, " + |
||||||
|
"LAST_UPDATE_BY, SEGMENT1, SEGMENT2, SEGMENT3, SEGMENT4, SEGMENT5, " + |
||||||
|
"SEGMENT6, SEGMENT7, SEGMENT8, SEGMENT9, SEGMENT10, SEGMENT11, " + |
||||||
|
"ENTERED_DR, ENTERED_CR, ACCOUNTED_DR, ACCOUNTED_CR, DOC_SEQUENCE_VALUE, " + |
||||||
|
"REFERENCE1, REFERENCE2, REFERENCE3, REFERENCE4, REFERENCE5, REFERENCE10, " + |
||||||
|
"JE_BATCH_ID, PERIOD_NAME, JE_HEADER_ID, JE_LINE_NUM, CHART_OF_ACCOUNTS_ID, " + |
||||||
|
"FUNCTIONAL_CURRENCY_CODE, WARNING_CODE, STAT_AMOUNT, GROUP_ID, REQUEST_ID, " + |
||||||
|
"SET_OF_BOOKS_ID, ATTRIBUTE_CATEGORY, ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3, " + |
||||||
|
"ATTRIBUTE4, ATTRIBUTE5, ATTRIBUTE6, ATTRIBUTE7, ATTRIBUTE8, ATTRIBUTE9, " + |
||||||
|
"ATTRIBUTE10, ATTRIBUTE11, ATTRIBUTE12, ATTRIBUTE13, ATTRIBUTE14, ATTRIBUTE15" + |
||||||
|
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + |
||||||
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + |
||||||
|
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; |
||||||
|
} |
||||||
|
|
||||||
|
private EbsGlInterface convertToEbsInterface(FiCerdataGatherVo voucher) { |
||||||
|
EbsGlInterface ebs = new EbsGlInterface(); |
||||||
|
|
||||||
|
long interfaceId = generateInterfaceId(); |
||||||
|
ebs.setInterfaceId(interfaceId); |
||||||
|
ebs.setStatus("NEW"); |
||||||
|
ebs.setLedgerFlag(defaultLedgerFlag); |
||||||
|
ebs.setAccountingDate(voucher.getAccountDate()); |
||||||
|
ebs.setCurrencyCode(defaultCurrencyCode); |
||||||
|
ebs.setDateCreated(new Date()); |
||||||
|
ebs.setActualFlag(defaultActualFlag); |
||||||
|
|
||||||
|
String sourceBatchId = generateSourceBatchId(voucher); |
||||||
|
ebs.setSourceBatchId(sourceBatchId); |
||||||
|
ebs.setSourceLineId(interfaceId); |
||||||
|
// 凭证类别名称
|
||||||
|
ebs.setUserJeCategoryName(voucher.getCertificateId()); |
||||||
|
// 凭证来源名称
|
||||||
|
ebs.setUserJeSourceName(defaultJeSourceName); |
||||||
|
ebs.setCurrencyConversionDate(voucher.getAccountDate()); |
||||||
|
ebs.setUserCurrencyConversionType(defaultCurrencyConversionType); |
||||||
|
ebs.setCurrencyConversionRate(BigDecimal.ONE); |
||||||
|
ebs.setImportFlag(defaultImportFlag); |
||||||
|
ebs.setImportDate(null); |
||||||
|
ebs.setErrorMessage(null); |
||||||
|
ebs.setLastUpdateDate(new Date()); |
||||||
|
ebs.setDocSeqNum(String.valueOf(interfaceId)); |
||||||
|
ebs.setCreatedBy(null); |
||||||
|
ebs.setLastUpdateBy(null); |
||||||
|
|
||||||
|
setSegments(ebs, voucher); |
||||||
|
|
||||||
|
if (isDebit(voucher)) { |
||||||
|
ebs.setEnteredDr(voucher.getAmount()); |
||||||
|
ebs.setEnteredCr(BigDecimal.ZERO); |
||||||
|
ebs.setAccountedDr(voucher.getAmount()); |
||||||
|
ebs.setAccountedCr(BigDecimal.ZERO); |
||||||
|
} else { |
||||||
|
ebs.setEnteredDr(BigDecimal.ZERO); |
||||||
|
ebs.setEnteredCr(voucher.getAmount()); |
||||||
|
ebs.setAccountedDr(BigDecimal.ZERO); |
||||||
|
ebs.setAccountedCr(voucher.getAmount()); |
||||||
|
} |
||||||
|
|
||||||
|
ebs.setDocSequenceValue(interfaceId); |
||||||
|
//待定,凭证批名规则后续与财务沟通确定
|
||||||
|
//ebs.setReference1(voucher.getBatchNo());
|
||||||
|
//可为空,批描述后续与财务沟通确定
|
||||||
|
// ebs.setReference2(voucher.getCertificateId() + "-" + voucher.getCertificateName());
|
||||||
|
ebs.setReference3(voucher.getManageCom()); |
||||||
|
ebs.setReference4(voucher.getCostCenter()); |
||||||
|
ebs.setReference5(voucher.getFinItemCode()); |
||||||
|
//凭证行摘要,具体摘要需要何信息待财务确定
|
||||||
|
// ebs.setReference10(voucher.getBusinessDataId() != null ? String.valueOf(voucher.getBusinessDataId()) : null);
|
||||||
|
|
||||||
|
String periodName = extractPeriodName(voucher.getAccountDate()); |
||||||
|
ebs.setPeriodName(periodName); |
||||||
|
|
||||||
|
ebs.setChartOfAccountsId(null); |
||||||
|
ebs.setFunctionalCurrencyCode(null); |
||||||
|
ebs.setWarningCode(null); |
||||||
|
ebs.setStatAmount(BigDecimal.ZERO); |
||||||
|
ebs.setGroupId(null); |
||||||
|
ebs.setRequestId(null); |
||||||
|
ebs.setSetOfBooksId(null); |
||||||
|
|
||||||
|
setAttributes(ebs, voucher); |
||||||
|
|
||||||
|
return ebs; |
||||||
|
} |
||||||
|
|
||||||
|
private void setParameters(PreparedStatement pstmt, EbsGlInterface ebs) throws SQLException { |
||||||
|
int index = 1; |
||||||
|
pstmt.setLong(index++, ebs.getInterfaceId()); |
||||||
|
pstmt.setString(index++, ebs.getStatus()); |
||||||
|
pstmt.setString(index++, ebs.getLedgerFlag()); |
||||||
|
pstmt.setDate(index++, ebs.getAccountingDate() != null ? new java.sql.Date(ebs.getAccountingDate().getTime()) : null); |
||||||
|
pstmt.setString(index++, ebs.getCurrencyCode()); |
||||||
|
pstmt.setDate(index++, ebs.getDateCreated() != null ? new java.sql.Date(ebs.getDateCreated().getTime()) : null); |
||||||
|
pstmt.setString(index++, ebs.getActualFlag()); |
||||||
|
pstmt.setString(index++, ebs.getSourceBatchId()); |
||||||
|
pstmt.setLong(index++, ebs.getSourceLineId()); |
||||||
|
pstmt.setString(index++, ebs.getUserJeCategoryName()); |
||||||
|
pstmt.setString(index++, ebs.getUserJeSourceName()); |
||||||
|
pstmt.setDate(index++, ebs.getCurrencyConversionDate() != null ? new java.sql.Date(ebs.getCurrencyConversionDate().getTime()) : null); |
||||||
|
pstmt.setString(index++, ebs.getUserCurrencyConversionType()); |
||||||
|
pstmt.setBigDecimal(index++, ebs.getCurrencyConversionRate()); |
||||||
|
pstmt.setString(index++, ebs.getImportFlag()); |
||||||
|
pstmt.setDate(index++, ebs.getImportDate() != null ? new java.sql.Date(ebs.getImportDate().getTime()) : null); |
||||||
|
pstmt.setString(index++, ebs.getErrorMessage()); |
||||||
|
pstmt.setDate(index++, ebs.getLastUpdateDate() != null ? new java.sql.Date(ebs.getLastUpdateDate().getTime()) : null); |
||||||
|
pstmt.setString(index++, ebs.getDocSeqNum()); |
||||||
|
pstmt.setString(index++, ebs.getCreatedBy()); |
||||||
|
pstmt.setString(index++, ebs.getLastUpdateBy()); |
||||||
|
|
||||||
|
pstmt.setString(index++, ebs.getSegment1()); |
||||||
|
pstmt.setString(index++, ebs.getSegment2()); |
||||||
|
pstmt.setString(index++, ebs.getSegment3()); |
||||||
|
pstmt.setString(index++, ebs.getSegment4()); |
||||||
|
pstmt.setString(index++, ebs.getSegment5()); |
||||||
|
pstmt.setString(index++, ebs.getSegment6()); |
||||||
|
pstmt.setString(index++, ebs.getSegment7()); |
||||||
|
pstmt.setString(index++, ebs.getSegment8()); |
||||||
|
pstmt.setString(index++, ebs.getSegment9()); |
||||||
|
pstmt.setString(index++, ebs.getSegment10()); |
||||||
|
pstmt.setString(index++, ebs.getSegment11()); |
||||||
|
|
||||||
|
pstmt.setBigDecimal(index++, ebs.getEnteredDr()); |
||||||
|
pstmt.setBigDecimal(index++, ebs.getEnteredCr()); |
||||||
|
pstmt.setBigDecimal(index++, ebs.getAccountedDr()); |
||||||
|
pstmt.setBigDecimal(index++, ebs.getAccountedCr()); |
||||||
|
pstmt.setLong(index++, ebs.getDocSequenceValue() != null ? ebs.getDocSequenceValue() : 0); |
||||||
|
|
||||||
|
pstmt.setString(index++, ebs.getReference1()); |
||||||
|
pstmt.setString(index++, ebs.getReference2()); |
||||||
|
pstmt.setString(index++, ebs.getReference3()); |
||||||
|
pstmt.setString(index++, ebs.getReference4()); |
||||||
|
pstmt.setString(index++, ebs.getReference5()); |
||||||
|
pstmt.setString(index++, ebs.getReference10()); |
||||||
|
|
||||||
|
pstmt.setLong(index++, ebs.getJeBatchId() != null ? ebs.getJeBatchId() : 0); |
||||||
|
pstmt.setString(index++, ebs.getPeriodName()); |
||||||
|
pstmt.setLong(index++, ebs.getJeHeaderId() != null ? ebs.getJeHeaderId() : 0); |
||||||
|
pstmt.setLong(index++, ebs.getJeLineNum() != null ? ebs.getJeLineNum() : 0); |
||||||
|
pstmt.setLong(index++, ebs.getChartOfAccountsId()); |
||||||
|
pstmt.setString(index++, ebs.getFunctionalCurrencyCode()); |
||||||
|
pstmt.setString(index++, ebs.getWarningCode()); |
||||||
|
pstmt.setBigDecimal(index++, ebs.getStatAmount()); |
||||||
|
pstmt.setLong(index++, ebs.getGroupId() != null ? ebs.getGroupId() : 0); |
||||||
|
pstmt.setLong(index++, ebs.getRequestId() != null ? ebs.getRequestId() : 0); |
||||||
|
pstmt.setLong(index++, ebs.getSetOfBooksId()); |
||||||
|
pstmt.setString(index++, ebs.getAttributeCategory()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute1()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute2()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute3()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute4()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute5()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute6()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute7()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute8()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute9()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute10()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute11()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute12()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute13()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute14()); |
||||||
|
pstmt.setString(index++, ebs.getAttribute15()); |
||||||
|
} |
||||||
|
|
||||||
|
private long generateInterfaceId() { |
||||||
|
return System.currentTimeMillis() * 1000 + sequenceGenerator.incrementAndGet(); |
||||||
|
} |
||||||
|
|
||||||
|
private String generateSourceBatchId(FiCerdataGatherVo voucher) { |
||||||
|
// return "BFS_" + voucher.getBatchNo() + "_" + System.currentTimeMillis();
|
||||||
|
return "BFS_" + "_" + System.currentTimeMillis(); |
||||||
|
} |
||||||
|
|
||||||
|
private void setSegments(EbsGlInterface ebs, FiCerdataGatherVo voucher) { |
||||||
|
ebs.setSegment1(voucher.getManageCom()); |
||||||
|
ebs.setSegment2(voucher.getCostCenter()); |
||||||
|
ebs.setSegment3(voucher.getFinItemCode()); |
||||||
|
ebs.setSegment4(voucher.getIntraBranch()); |
||||||
|
ebs.setSegment5(voucher.getReconCode()); |
||||||
|
ebs.setSegment6(voucher.getRiskCode()); |
||||||
|
ebs.setSegment7(voucher.getCashFlow()); |
||||||
|
ebs.setSegment8(""); |
||||||
|
ebs.setSegment9(""); |
||||||
|
ebs.setSegment10(""); |
||||||
|
ebs.setSegment11(""); |
||||||
|
} |
||||||
|
|
||||||
|
private void setAttributes(EbsGlInterface ebs, FiCerdataGatherVo voucher) { |
||||||
|
ebs.setAttributeCategory("BFS_VOUCHER"); |
||||||
|
ebs.setAttribute1(voucher.getId() != null ? String.valueOf(voucher.getId()) : null); |
||||||
|
ebs.setAttribute2(voucher.getCertificateId()); |
||||||
|
ebs.setAttribute3(voucher.getCostId()); |
||||||
|
ebs.setAttribute4(voucher.getFiscalYear()); |
||||||
|
ebs.setAttribute5(voucher.getFiscalMonth()); |
||||||
|
ebs.setAttribute6(voucher.getVchrSmmry()); |
||||||
|
ebs.setAttribute7(voucher.getTaxCode()); |
||||||
|
ebs.setAttribute8(voucher.getTaxRate()); |
||||||
|
ebs.setAttribute9(voucher.getBudget()); |
||||||
|
ebs.setAttribute10(voucher.getAccountMark()); |
||||||
|
} |
||||||
|
|
||||||
|
private boolean isDebit(FiCerdataGatherVo voucher) { |
||||||
|
return "D".equals(voucher.getFinItemType()) || "借".equals(voucher.getFinItemType()); |
||||||
|
} |
||||||
|
|
||||||
|
private String extractPeriodName(Date accountDate) { |
||||||
|
if (accountDate == null) { |
||||||
|
return LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")); |
||||||
|
} |
||||||
|
LocalDate localDate = new java.sql.Date(accountDate.getTime()).toLocalDate(); |
||||||
|
return localDate.format(DateTimeFormatter.ofPattern("yyyy-MM")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue