资方放款-凭证草稿

This commit is contained in:
ap007 2021-07-23 19:05:08 +08:00
parent b023791628
commit c8ab517256
3 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,5 @@
package com.tenwa.voucher.service;
public interface VoucherInfoService {
void run() throws Exception;
}

View File

@ -0,0 +1,130 @@
package com.tenwa.voucher.serviceImp;
import com.amarsoft.are.jbo.*;
import com.amarsoft.dict.als.manage.NameManager;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.flow.util.FlowUtil;
import com.tenwa.reckon.util.DateUtil;
import com.tenwa.voucher.service.VoucherInfoService;
import jbo.app.VOUCHER_V8;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FundIncomeVoucherInfoServiceImpl implements VoucherInfoService {
//todo 这个字段是自增的更新生产时先在生产配置然后根据生产的编号再更改
private static final String VOUCHER_CONFIGNO = "PZ2021072100000020";//凭证号
private static final String EVIDENCE_MESSAGE = "凭证输出";//查看凭证表发现只有这一个值目前先设置为固定值
private static final String EAS_FLAG = "0";//导入财务系统状态 默认0 (同上只有这一个值)
public void run() {
JBOTransaction tx = null;
try {
tx = JBOFactory.createJBOTransaction();
//凭证编号
String voucherNo ="k" + FlowUtil.getVoucher_Number(tx);
System.out.println(voucherNo+"======");
} catch (JBOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
tx.commit();
} catch (JBOException e) {
e.printStackTrace();
}
}
}
public void createVoucher(List<Map<String, String>> list, JBOTransaction tx) throws Exception {
BizObjectManager bomV8 = JBOFactory.getBizObjectManager(VOUCHER_V8.CLASS_NAME,tx);
List<Map<String,String>> loanInfoList = this.getHasLoanContract(tx);
for(Map<String,String> loanInfo : loanInfoList){
loanInfo = this.getCommonParam(loanInfo,tx);
List<Map<String,String>> paramList = getParamOfVoucher(tx);
for(Map<String,String> param : paramList){
param.putAll(loanInfo);
BizObject boV8 = bomV8.newObject();
boV8.setAttributesValue(this.getFinalParam(param));
bomV8.saveObject(boV8);
}
}
}
public List<Map<String,String>> getHasLoanContract(JBOTransaction tx) throws Exception {
//todo 目前为邮储九江的时候将where条件更改参数
String sql = "select frl.loan_no,frl.customer_name,frl.loan_date,frl.loan_amt,frl.business_rate,frl.TRANS_AMT,fr.CONTRACT_ID,fr.CONTRACT_NO " +
"from fc_request_loan frl " +
"left join fc_request fr on frl.LOAN_NO = fr.FC_LOAN_ID " +
"where frl.del_flag='0' and fr.DEL_FLAG='0' and voucher_status='0' and fr.CHANNEL_NO='PSBC' ";
return DataOperatorUtil.getDataBySql(sql,tx);
}
public Map<String,String> getCommonParam(Map<String,String> loanInfo,JBOTransaction tx) throws Exception {
String contractId = loanInfo.get("CONTRACT_ID");
String voucherNo ="k" + FlowUtil.getVoucher_Number(tx);
loanInfo.put("voucherNo",voucherNo);
String userId = "administrator";//操作人
String userName = NameManager.getUserName(userId);
loanInfo.put("userId",userId);
loanInfo.put("userName",userName);
//日期
String loanDate = loanInfo.get("loan_date").substring(0,8);
String periodYear = loanDate.substring(0,4);
String periodMonth = loanDate.substring(4,6);
Date date = new SimpleDateFormat("yyyyMMdd").parse(loanDate);
loanDate = new SimpleDateFormat("yyyy/MM/dd").format(date);
loanInfo.put("periodYear",periodYear);
loanInfo.put("periodMonth",periodMonth);
loanInfo.put("accountingDate",loanDate);
loanInfo.put("generate_date", DateUtil.getSystemDateDetailTime());
return loanInfo;
}
public List<Map<String,String>> getParamOfVoucher(JBOTransaction tx) throws Exception {
String sql = "select lvl.SORT_NUMBER as sortNumber,lvl.LOAN_SUBJECT as loanSubject,CASE WHEN lvl.loan_direction = '1' THEN '1' ELSE '-1' END as entrydc,lvl.VALUE_ABSTRACT as valueAbstract,lsc.SUBJECTS_CODE as subjectsCode,lsc.SUBJECTS_NAME as subjectsName " +
"from lv_voucher_loan lvl " +
"left join LV_STACTS_CONFIG lsc on lvl.LOAN_SUBJECT=lsc.id " +
"left join lv_voucher_config lvc on lvl.VOUCHER_ID=lvc.id " +
"where lvc.VOUCHER_NO='"+VOUCHER_CONFIGNO+"'";
return DataOperatorUtil.getDataBySql(sql,tx);
}
public Map<String,String> getFinalParam(Map<String,String> param){
Map<String,String> finalParam = new HashMap<>();
finalParam.put("evidence_message",EVIDENCE_MESSAGE);//固定值凭证输出
finalParam.put("periodyear",param.get("periodYear")); //
finalParam.put("f1",param.get("accountingDate"));//会计日期
finalParam.put("f2",param.get("subjectsCode"));//科目编码
finalParam.put("f3",param.get("voucherNo"));//凭证编号
finalParam.put("f5",param.get("valueAbstract"));//摘要
finalParam.put("f6",param.get("loanSubject"));//科目表id
finalParam.put("f7",param.get("periodYear"));//借方金额
finalParam.put("f8",param.get("periodYear"));//贷方金额
finalParam.put("f12",param.get("userName"));//操作人
finalParam.put("f15",param.get("accountingDate"));//日期(与会计日期相同)
finalParam.put("f47",param.get("CONTRACT_NO"));//业务合同编号
finalParam.put("f48",param.get("periodYear"));//本方信息No
finalParam.put("f49",param.get("periodYear"));//所属公司ID注意实际此字段存的是code_library表中codeno='ManySubject' itemno 字段
finalParam.put("f50",param.get("periodYear"));//所属公司名称
finalParam.put("f51",param.get("periodYear"));//会计期间-与上面 相同
finalParam.put("f52",param.get("periodMonth"));//会计期间-
finalParam.put("f59",param.get("sortNumber"));//凭证配置中排序号
finalParam.put("f60",param.get("CONTRACT_NO"));//业务合同号与f47相同尚不明为何重复
finalParam.put("f61",param.get("customer_name"));//客户名称
finalParam.put("f62",param.get("loanSubject"));//科目表id与f6相同尚不明为何重复
finalParam.put("f65",VOUCHER_CONFIGNO);//凭证配置编号
finalParam.put("v8_status","已完整");//凭证状态 已完整未完整
finalParam.put("generate_date",param.get("generate_date"));//创建时间
finalParam.put("v8_flag",EAS_FLAG);//导入财务系统状态 默认0尚不知有何逻辑目前整个表中全部为0
finalParam.put("module_name",param.get("subjectsName"));//凭证名称
finalParam.put("entrydc",param.get("entrydc"));//借贷1-1
finalParam.put("inputuserid",param.get("userId"));//操作人id
return finalParam;
}
}

View File

@ -0,0 +1,40 @@
package com.tenwa.lease.app.quartzmession;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.util.StringFunction;
import com.base.util.QuartzUtil;
import com.tenwa.voucher.CreateVoucherProcess.InsertVoucherRentCompensatory;
import com.tenwa.voucher.CreateVoucherProcess.InsertVoucherRentIncome;
import com.tenwa.voucher.service.VoucherInfoService;
import com.tenwa.voucher.serviceImp.FundIncomeVoucherInfoServiceImpl;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 生成外资方放款凭证-定时任务
* @author
*/
public class CorpusSourceFundIncomeCreateVoucherJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
String startime = StringFunction.getTodayNow();
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
String curUserId = userId == null? "system" : userId.toString();
JBOTransaction tx = null;
try{
tx = JBOFactory.createJBOTransaction();
//
VoucherInfoService voucher = new FundIncomeVoucherInfoServiceImpl();
voucher.run();
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "success", "成功", curUserId);
} catch (Exception e) {
QuartzUtil.insertLog(startime,"com.tenwa.comm.message.controller.BusinessCancelJob", "error", "失败", curUserId);
}
}
}