Commit 7d90c26e by zhoujunpeng

Merge branch 'develop' of http://192.168.0.110:11080/isc-v3.1/isc-funds into develop

 Conflicts:
	isc-funds-business/src/main/java/com/brilliance/isc/funds/basesel/ftdsel/resource/FtdselController.java
	isc-funds-business/src/main/java/com/brilliance/isc/funds/basesel/ftdsel/service/FtdselService.java
	isc-funds-business/src/main/java/com/brilliance/isc/funds/basesel/ftdsel/service/impl/FtdselServiceImpl.java
	isc-funds-business/src/main/java/com/brilliance/isc/funds/fxtlop/check/FxtlopValidator.java
	isc-funds-business/src/main/java/com/brilliance/isc/funds/fxtlop/resource/FxtlopResource.java
	isc-funds-business/src/main/resources/mapper/FtdselMapper.xml
	isc-funds-entity/src/main/java/com/brilliance/isc/funds/bo/funds/FxtlopStoreBo.java
	isc-funds-entity/src/main/java/com/brilliance/isc/funds/mapper/FtdselMapper.java
	isc-funds-entity/src/main/java/com/brilliance/isc/funds/vo/funds/FxtlopStoreVo.java
parents d4024bce 1c47f394
......@@ -67,7 +67,7 @@ envConfig:
serializer: kryo
env:
mapperPackage: com.brilliance.isc.core.mda.dao
mapperPackage: com.brilliance.isc.mda.dao
global:
ignoreUrls:
......
0002=This field is mandatory
funds_fxtssb_000000=Settlement
funds_fxtsss_000000=Settlement
0002=This field is mandatory
funds_fxtssb_000000=Settlement
funds_fxtsss_000000=Settlement
\ No newline at end of file
package com.brilliance.isc.funds.basesel.fxdsel.resource;
import com.brilliance.isc.funds.basesel.fxdsel.service.FxdselService;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.funds.vo.FxdVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("/fxdsel")
public class FxdselController {
@Resource
private FxdselService fxdselService;
@RequestMapping("/query")
public ResponseSet list(@RequestBody FxdVo vo) {
return ResponseSet.simpleSuccess(fxdselService.query(vo));
}
/**
* 处理按钮查看能够进行的交易
*
*/
/**
* 详情页面初始化
*/
}
package com.brilliance.isc.funds.basesel.fxdsel.service;
import com.brilliance.isc.funds.bo.Fxd;
import com.brilliance.isc.funds.vo.FxdVo;
import com.github.pagehelper.PageInfo;
public interface FxdselService {
PageInfo<Fxd> query(FxdVo fxdVo);
}
package com.brilliance.isc.funds.basesel.fxdsel.service.impl;
import com.brilliance.isc.funds.basesel.fxdsel.service.FxdselService;
import com.brilliance.isc.funds.bo.Fxd;
import com.brilliance.isc.funds.mapper.FxdselMapper;
import com.brilliance.isc.funds.vo.FxdVo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class FxdselServiceImpl implements FxdselService {
@Resource
private FxdselMapper fxdselMapper;
@Override
public PageInfo<Fxd> query(FxdVo vo) {
PageHelper.startPage(vo.getPageNo(), vo.getPageSize(), null).setReasonable(true);
List<Fxd> result= fxdselMapper.query(vo);
return new PageInfo<>(result);
// String branch = fxtselQueryVo.getBranch();
// if (Strings.isEmpty(branch)) {
// branch = SettleContext.getSessionUserVo().getOwnOrgDepartmentNumber();
// }
// Bch bch = bchService.getDirectAccBch(branch); //获取到当前登录柜员的记账机构
// if (Objects.isNull(bch) && !Objects.equals(branch, "1000")) {//非总行机构一定会获取到记账机构,如果没获取到则抛出异常
// SettleExceptionUtils.sysDump("未获取到机构信息!");
// }
// if(!Objects.isNull(bch)){
// fxtselQueryVo.setBchinr(bch.getInr());
// //查询归属机构集合
// List<Bch> bchList = bchService.listAllChildSubBchByAccBch(bch.getBranch());
// if (bchList != null) {
// fxtselQueryVo.setBchLst(bchList);
// }
// }
// PageHelper.startPage(fxtselQueryVo.getPageNumber(), fxtselQueryVo.getPageSize()).setReasonable(true);
// List<CpdWithPtsCbbResponseVo> cpdList = cpdMapper.queryCpd(fxtselQueryVo);
// for (CpdWithPtsCbbResponseVo cpd:cpdList) {
// if(!MdaUtils.isEmpty(cpd.getPyeExtkey())) {
// cpd.setPyeExtkey(cpd.getPyeExtkey().split("-")[0]);
// }
// if(!MdaUtils.isEmpty(cpd.getOrcExtkey())) {
// cpd.setOrcExtkey(cpd.getOrcExtkey().split("-")[0]);
// }
// }
// return new PageInfo(cpdList);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.bo.Bch;
import com.brilliance.isc.common.api.bch.service.BchService;
import com.brilliance.isc.vo.ResponseSet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/bch")
public class BchController {
@Autowired
private BchService bchService;
@RequestMapping("/getBranchListByownExtKey")
public ResponseSet<List<Bch>> getBranchListByownExtKey(@RequestBody Map<String, Object> body) {
String ownExtKey = body.get("ownExtKey").toString();
List<Bch> bchList = new ArrayList<>();
return new ResponseSet(bchService.listAllByOwnExtKey(ownExtKey));
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.bo.Bopcod;
import com.brilliance.isc.common.api.bopcod.BopcodService;
import com.brilliance.isc.vo.ResponseSet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/bopcod")
public class BopcodController {
@Autowired
private BopcodService bopcodService;
@RequestMapping("/getBopcodList")
public ResponseSet<List<Bopcod>> getBopcodList(@RequestBody Map<String,Object> body){
String iotyp = body.get("iotyp").toString();
return new ResponseSet(bopcodService.getBopcodList(iotyp));
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.diary.controller.AbstractDiaryController;
import com.brilliance.isc.common.api.diary.vo.DiaryRequestVo;
import com.brilliance.isc.common.api.diary.vo.DiaryResponseVo;
import com.brilliance.isc.common.trndia.vo.DiaVo;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Diary组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdDiaryController extends AbstractDiaryController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 试算备忘录入口
*
* @param diaryRequestVo
* @return
*/
@RequestMapping("/trndia/calcDiaries")
@Override
public ResponseSet<DiaryResponseVo> calcDiaries(@RequestBody DiaryRequestVo<FxdBizInfoVo, FxdBizAmdInfoVo> diaryRequestVo) {
return super.calcDiaries(diaryRequestVo);
}
/**
* 计算备忘录状态入口
*
* @param diaVo
* @return
*/
@RequestMapping("/trndia/calculateDiamodflg")
@Override
public ResponseSet<String> calculateDiamodflg(@RequestBody DiaVo diaVo) {
return super.calculateDiamodflg(diaVo);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.fee.controller.AbstractFeeDetailController;
import com.brilliance.isc.common.api.fee.vo.FeeDetailRequestVo;
import com.brilliance.isc.common.api.fee.vo.FeeDetailResponseVo;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 费用组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdFeeDetailController extends AbstractFeeDetailController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 试算费用入口
*
* @param feeDetailRequestVo
* @return
*/
@RequestMapping("/setmod/calcFeeDetail")
@Override
public ResponseSet<FeeDetailResponseVo> calcFeeDetail(@RequestBody FeeDetailRequestVo<FxdBizInfoVo, FxdBizAmdInfoVo> feeDetailRequestVo) {
return super.calcFeeDetail(feeDetailRequestVo);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.gle.controller.AbstractGleController;
import com.brilliance.isc.common.api.gle.vo.GlentryRequest;
import com.brilliance.isc.common.api.gle.vo.GlentryResponse;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 会计分录组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdGleController extends AbstractGleController<FxdBizInfoVo> {
/**
* 会计分录试算入口
*
* @param glentryRequest
* @return ResponseSet<GlentryResponse>
*/
@RequestMapping("/gle/assertGle")
@Override
public ResponseSet<GlentryResponse> generateGlentry(@RequestBody GlentryRequest<FxdBizInfoVo> glentryRequest) {
return super.generateGlentry(glentryRequest);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.bop.controller.AbstractJshController;
import com.brilliance.isc.common.jshmod.vo.JshmodRequest;
import com.brilliance.isc.common.jshmod.vo.JshmodResponse;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @program: isc-funds
* @ClassName: FxdJshController
* @description: 结售汇申报组件
* @author: huangshunlin
* @create: 2024-10-12 13:48
*/
@RestController
@RequestMapping("/fxd")
public class FxdJshController extends AbstractJshController<FxdBizInfoVo> {
@RequestMapping("/calcJshmod")
@Override
public ResponseSet<JshmodResponse> calcJshmod(@RequestBody JshmodRequest<FxdBizInfoVo> jshmodRequest) {
return super.calcJshmod(jshmodRequest);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.liaall.controller.AbstractLiaallController;
import com.brilliance.isc.common.api.liaall.vo.LiaallRequest;
import com.brilliance.isc.common.api.liaall.vo.LiaallResponse;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 表外记账组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdLiaallController extends AbstractLiaallController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 表外记账试算服务
*
* @param liaallRequest
* @return
*/
@RequestMapping("/liaall/assertLiaall")
@Override
public ResponseSet<LiaallResponse> calcLiaall(@RequestBody LiaallRequest<FxdBizInfoVo, FxdBizAmdInfoVo> liaallRequest) {
return super.calcLiaall(liaallRequest);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.lim.controller.AbstractLimController;
import com.brilliance.isc.common.api.lim.vo.LimRequest;
import com.brilliance.isc.common.api.lim.vo.LimResponse;
import com.brilliance.isc.common.api.lim.vo.YapinRequest;
import com.brilliance.isc.common.api.lim.vo.YapinResponse;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 额度组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdLimController extends AbstractLimController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 额度初始化
*
* @param limRequest
* @return
*/
@RequestMapping("/lim/limInit")
@Override
public ResponseSet<LimResponse> limInit(@RequestBody LimRequest<FxdBizInfoVo, FxdBizAmdInfoVo> limRequest) {
return super.limInit(limRequest);
}
/**
* 额度查询入口
*
* @param limRequest
* @return
*/
@RequestMapping("/lim/limQuery")
@Override
public ResponseSet<LimResponse> limQuery(@RequestBody LimRequest<FxdBizInfoVo, FxdBizAmdInfoVo> limRequest) {
return super.limQuery(limRequest);
}
/**
* 额度试算入口
*
* @param limRequest
* @return
*/
@RequestMapping("/lim/limPreCal")
@Override
public ResponseSet<LimResponse> limPreCal(@RequestBody LimRequest<FxdBizInfoVo, FxdBizAmdInfoVo> limRequest) {
return super.limPreCal(limRequest);
}
/**
* 转授权查询
*
* @param limRequest
* @return
*/
@RequestMapping("/lim/limZsqQuery")
@Override
public ResponseSet<LimResponse> limZsqQuery(@RequestBody LimRequest<FxdBizInfoVo, FxdBizAmdInfoVo> limRequest) {
return super.limZsqQuery(limRequest);
}
@RequestMapping("/lim/yapinQuery")
public ResponseSet<YapinResponse> yapinQuery(@RequestBody YapinRequest<FxdBizInfoVo, FxdBizAmdInfoVo> yapinRequest) {
return super.yapinQuery(yapinRequest);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.settle.controller.AbstractSettleDetailController;
import com.brilliance.isc.common.api.settle.vo.AccountRequestVo;
import com.brilliance.isc.common.api.settle.vo.AccountResponseVo;
import com.brilliance.isc.common.api.settle.vo.SettleDetailRequestVo;
import com.brilliance.isc.common.api.settle.vo.SettleDetailResponseVo;
import com.brilliance.isc.common.setgll.vo.SetgllVo;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 账务组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdSettleDetailController extends AbstractSettleDetailController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 试算账务入口
*
* @param settleDetailRequestVo
* @return
*/
@RequestMapping("/setmod/calcSettleDetail")
@Override
public ResponseSet<SettleDetailResponseVo> calcSettleDetail(@RequestBody SettleDetailRequestVo<FxdBizInfoVo, FxdBizAmdInfoVo> settleDetailRequestVo) {
return super.calcSettleDetail(settleDetailRequestVo);
}
/**
* 获取核心账户信息
*
* @param accountRequestVo
* @return
*/
@RequestMapping("/getCoreAcctInfo")
@Override
public ResponseSet<AccountResponseVo> getCoreAccountCode(@RequestBody AccountRequestVo accountRequestVo) {
return super.getCoreAccountCode(accountRequestVo);
}
/**
* 获取账户信息
*
* @param setgllVo
* @return
*/
@RequestMapping("/getAcctInfo")
@Override
public ResponseSet<SetgllVo> getAcctInfo(@RequestBody SetgllVo setgllVo) {
return super.getAcctInfo(setgllVo);
}
}
package com.brilliance.isc.funds.common.controller;
import com.brilliance.isc.common.api.trndoc.controller.AbstractTrndocController;
import com.brilliance.isc.common.api.trndoc.vo.TrndocRequest;
import com.brilliance.isc.common.api.trndoc.vo.TrndocResponse;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.funds.FxdBizAmdInfoVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.Map;
/**
* 报文面函组件
*/
@RestController
@RequestMapping("/fxd")
public class FxdTrndocController extends AbstractTrndocController<FxdBizInfoVo, FxdBizAmdInfoVo> {
/**
* 面函报文试算入口
*
* @param trndoc
* @return
*/
@RequestMapping("/docpan/assertTrndoc")
@Override
public ResponseSet<TrndocResponse> assertTrndoc(@RequestBody TrndocRequest<FxdBizInfoVo, FxdBizAmdInfoVo> trndoc) {
return super.assertTrndoc(trndoc);
}
/**
* 面函报文预览功能
*
* @param paramMap
* @return
* @throws IOException
*/
@RequestMapping("/docpan/showDOCS")
@Override
public ResponseSet<TrndocResponse> showDOCS(@RequestBody Map<String, Object> paramMap) throws IOException {
return super.showDOCS(paramMap);
}
}
package com.brilliance.isc.funds.common.register.cci;
import com.brilliance.isc.bo.Cci;
import com.brilliance.isc.bo.Pts;
import com.brilliance.isc.common.register.cci.CliBanInfo;
import com.brilliance.isc.common.transaction.help.TransactionHelpService;
import com.brilliance.isc.common.vo.PtsptaVo;
import com.brilliance.isc.mda.dao.PtsMapper;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Component("FXD.cciRegister")
public class FxdCliBanInfo implements CliBanInfo {
@Resource
private TransactionHelpService transactionHelpService;
@Resource
private PtsMapper ptsMapper;
/**
* source:fxdlod.0006.script
*/
@Override
public void buildValue(String objinr, String objtyp, List<PtsptaVo> ptsptaVos, Cci cci) {
//getFxdCliBanInfo
List<Pts> ptsList = ptsMapper.getPtsByObjInrTyp(objinr, objtyp);
if (CollectionUtils.isEmpty(ptsList)) {
ptsList = new ArrayList<>();
for (PtsptaVo ptsptaVo : ptsptaVos) {
ptsList.add(ptsptaVo.getPts());
}
}
if (CollectionUtils.isEmpty(ptsList)) {
return;
}
//! Defines role of the bank and the customer of the passed contract and PTAINR of the role as well
//! The passed contract has to be loaded completely
// role can be set dynamically dependent on the contract context
cci.setCcicusrol("APL");
Optional<Pts> optionalPts = ptsList.stream().filter(pts -> cci.getCcicusrol().equalsIgnoreCase(pts.getRol())).findFirst();
if (optionalPts.isPresent()) {
cci.setCcicusptainr(optionalPts.get().getPtainr());
}
cci.setCcibanptainr("");
cci.setCcibanrol("");
}
}
package com.brilliance.isc.funds.fxtfcm.check;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
/**
* @program: isc-funds
* @ClassName: FxtfcmValidator
* @description: 结售汇平盘确认 Fxtfcm 校验
* @author: 肖桐
* @create: 2024-10-11 11:28
*/
@Component
public class FxtfcmValidator extends AbstractModuleValidator <FxtfcmStoreBo>{
@Override
@PostConstruct
public void register(){
super.register();;
}
@Override
public Map<String, String> validate(FxtfcmStoreBo vo) {
Map<String, String> maps = new HashMap<>();
maps.putAll(super.validate(vo));
return maps;
}
/**
* source:fxtfcm.0023.script
*/
@Validate(path="fxdgrp.apl.pts.ref")
public ValidResult checkFxdgrpAplPtsRefN1000(FxtfcmStoreBo vo){
if( ! MdaUtils.isEmpty(vo.getSwtflg()) && ( MdaUtils.compareTo(vo.getMt30m().getS22a(),"AMND") == 0 || MdaUtils.compareTo(vo.getMt30m().getS22a(),"CANC") == 0 ) )
{
if( MdaUtils.isEmpty(vo.getFxdgrp().getApl().getPts().getRef()) )
{
return errorMandatory();
}
}
return null;
}
/**
* source:fxtfcm.0024.script
*/
@Validate(path="mt30m.rbc.pts.extkey")
public ValidResult checkMt30mRbcPtsExtkeyN1000(FxtfcmStoreBo vo){
if( ! MdaUtils.isEmpty(vo.getSwtflg()) && MdaUtils.isEmpty(vo.getMt30m().getRbc().getPts().getExtkey()) )
{
return errorMandatory();
}
return null;
}
/**
* source:fxtfcm.0025.script
*/
@Validate(path="mt30m.owc.pts.extkey")
public ValidResult checkMt30mOwcPtsExtkeyN1000(FxtfcmStoreBo vo){
if( ! MdaUtils.isEmpty(vo.getSwtflg()) && MdaUtils.isEmpty(vo.getMt30m().getOwc().getPts().getExtkey()) )
{
return errorMandatory();
}
return null;
}
}
package com.brilliance.isc.funds.fxtfcm.document;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.trndoc.vo.DoceotVo;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.mda.runtime.mda.util.Dates;
import com.brilliance.mda.runtime.mda.util.Formats;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service("fxtfcm.BuildFxt300l1")
public class BuildFxt300l1 {
public Map<String, Object> build(FxtfcmStoreBo trnBo, DoceotVo doceotVo) {
HashMap map = new HashMap();
map.putAll(printHeader(trnBo, doceotVo));
//map.putAll(printBody(trnBo, doceotVo));
map.putAll(printFooter(trnBo, doceotVo));
return map;
}
private Map<String, Object> printHeader(FxtfcmStoreBo trnBo, DoceotVo doceotVo) {
HashMap<String, Object> map = new HashMap<>();
String title = "";
title = " Formatted outgoing message / mt300 Viewer";
map.put("title", title);
return map;
}
private Map<String, Object> printFooter(FxtfcmStoreBo trnBo, DoceotVo doceotVo) {
HashMap<String, Object> map = new HashMap<>();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String format = sdf.format(new Date());
String footer = Strings.getText("Diary printed by $1 on $2 at $3 during the change",
SettleContext.getUserSession().getUsr().getExtkey(), Formats.fmtDateLong(Dates.today()), format);
map.put("footer", footer);
return map;
}
}
package com.brilliance.isc.funds.fxtfcm.document;
import com.brilliance.isc.common.trndoc.vo.DoceotVo;
import com.brilliance.isc.doc.handle.impl.AbstractTransactionDocSet;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@Component("fxtfcm.docset")
public class FxtfcmDocset extends AbstractTransactionDocSet<FxtfcmStoreBo> {
@Resource
private BuildFxt300l1 buildFxt300l1;
@PostConstruct
public void buildMember() {
buildLetterProvider("fxtfcm","FXT3001");
//扫描Cortype支持,必须要执行
scanDocCortypSupport();
}
public Map<String,Object> buildExtraMapForLetter(FxtfcmStoreBo trnbo, DoceotVo doceotVo){
if (MdaUtils.compareTo(doceotVo.getDocnam(),"FXT3001")==0){
return buildFxt300l1.build(trnbo,doceotVo);
} else {
return new HashMap<>();
}
}
}
package com.brilliance.isc.funds.fxtsss.register.diasav;
package com.brilliance.isc.funds.fxtfcm.register.dissav;
import com.brilliance.isc.common.register.diasav.IDiasavRegister;
import com.brilliance.isc.common.register.diasav.common.DftcreDiasavRegister;
......@@ -12,13 +12,13 @@ import org.springframework.stereotype.Component;
/**
* @program: isc-funds
* @ClassName: FxtsssDiasavRegister
* @description: 即期售汇 Fxtsss 备忘录注册
* @author: huangshunlin
* @create: 2024-10-08 15:39
* @ClassName: FxtfcmDiasavRegister
* @description: 结售汇平盘确认 Fxtfcm 备忘录注册
* @author: Lenovo
* @create: 2024-10-11 17:30
*/
@Component("fxtsss.diasavRegister")
public class FxtsssDiasavRegister implements IDiasavRegister {
@Component("fxtfcm.diasavRegister")
public class FxtfcmDiasavRegister implements IDiasavRegister {
@Autowired
private TrndiaService trndiaService;
......@@ -42,4 +42,4 @@ public class FxtsssDiasavRegister implements IDiasavRegister {
private void trnDiasav(TrndiaVo trndiaVo) {
}
}
}
\ No newline at end of file
package com.brilliance.isc.funds.fxtfcm.register.doc;
import com.brilliance.isc.common.component.PtsptaToolComponent;
import com.brilliance.isc.common.register.document.IDocumentRegister;
import com.brilliance.isc.common.trndoc.service.TrndocService;
import com.brilliance.isc.common.trndoc.vo.TrndocVo;
import com.brilliance.isc.common.vo.PtsptaVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @program: isc-funds
* @ClassName: FxtfcmDocumentRegister
* @description: 结售汇平盘确认 Fxtfcm 报文注册
* @author: Lenovo
* @create: 2024-10-11 17:47
*/
@Component("fxtfcm.documentRegister")
public class FxtfcmDocumentRegister implements IDocumentRegister {
@Autowired
TrndocService trndocService;
@Resource
PtsptaToolComponent ptsptaToolComponent;
@Override
public void registerDocument(TrndocVo trndoc) {
doRegister(trndoc);
}
public void doRegister(TrndocVo trndoc){
FxdBizInfoVo rec = (FxdBizInfoVo) trndoc.getRec();
PtsptaVo aplVo = ptsptaToolComponent.getPtsFromListByRol(trndoc.getPtsptas(), "APL");
if (!MdaUtils.isEmpty(rec.getSwtflg())) {
trndocService.defDocEot(trndoc, "TRN", "300", "\\FXT300L1", "LET", 0, aplVo.getPts().getPtainr(), "\\FXDGRP\\REC", "MT 300", "TRO", "");
}
}
}
package com.brilliance.isc.funds.fxtfcm.register.fee;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.fee.common.DocumentFeeRegister;
import com.brilliance.isc.common.register.fee.common.LiaallFeeRegister;
import com.brilliance.isc.common.register.fee.common.SetmodFeeRegister;
import com.brilliance.isc.common.setfeg.service.SetfegService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @program: isc-funds
* @ClassName: FxtfcmFeeRegister
* @description: 结售汇平盘确认 Fxtfcm 费用注册
* @author: Lenovo
* @create: 2024-10-11 17:36
*/
@Component("fxtfcm.feeRegister")
public class FxtfcmFeeRegister extends AbstractFeeRegister {
@Autowired
private SetfegService setfegService;
@Autowired
private DocumentFeeRegister documentFeeRegister;
@Autowired
private LiaallFeeRegister liaallFeeRegister;
@Autowired
private SetmodFeeRegister setmodFeeRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
setmodFeeRegister.registerSettlement(setmodVo);
documentFeeRegister.registerSettlement(setmodVo);
liaallFeeRegister.registerSettlement(setmodVo);
}
}
package com.brilliance.isc.funds.fxtfcm.register.liaall;
import com.brilliance.isc.common.liaall.vo.LiaallVo;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.liaall.ILiaallRegister;
import com.brilliance.isc.common.register.liaall.common.LiaallRegister;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @program: isc-funds
* @ClassName: FxtfcmLiaallRegister
* @description: 结售汇平盘确认 Fxtfcm 表外注册
* @author: Lenovo
* @create: 2024-10-11 17:41
*/
@Component("fxtfcm.liaallSetTransaction")
public class FxtfcmLiaallRegister implements ILiaallRegister {
@Autowired
private LiaallRegister liaallRegister;
@Override
public void liaallSetTransaction(LiaallVo liaallVo) {
liaallRegister.liaallSetTransaction(liaallVo);
}
}
package com.brilliance.isc.funds.fxtfcm.register.settle;
import com.brilliance.isc.common.glemod.service.GlemodService;
import com.brilliance.isc.common.register.settle.DefaultSettleRegister;
import com.brilliance.isc.common.register.settle.ISettleRegister;
import com.brilliance.isc.common.setglg.service.SetglgService;
import com.brilliance.isc.common.setmod.service.SetmodService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
@Component("fxtfcm.settleRegister")
public class FxtfcmSettleRegister implements ISettleRegister {
@Autowired
private SetmodService setmodService;
@Autowired
private SetglgService setglgService;
@Autowired
private DefaultSettleRegister defaultSettleRegister;
@Autowired
private GlemodService glemodService;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
defaultSettleRegister.registerSettlement(setmodVo);
}
private void transRegister(SetmodVo setmodVo) {
// FxdBizInfoVo rec = (FxdBizInfoVo) setmodVo.getRec();
//
// setglgService.setglgClrAmount ( setmodVo.getSetglg(),"TRN" );
// setglgService.setglgClrAmount ( setmodVo.getSetglg(),"SET" );
// //!==============================================
// //2、付出外币资金:
// //借:281105外汇买卖对外平盘 (A外币)
// //贷:112306/1125存放境内/外同业 (A外币)
// //!==============================================
// String act1 = null;
// String dbtKey = null;
// String acctyp = null;
// String acc = null;
// String cdtKey = null;
// BigDecimal baseunit = null;
// if( ! MdaUtils.isEmpty(rec.getFxtyp()) )
// {
// //#卖出确认
// //D:281105(A外币)
// act1 = glemodService.getAvailAcc ( "FT-FCR", this.getFxdgrp().getCbs().getNom1().getCur(), "", this, setmodVo.getSetamt() );
// dbtKey = setglgService.setglgAddAmount ( setmodVo.getSetglg(),"SET", "APL", this.getSetmod().getDoccur(), setmodVo.getSetamt(), "SET", "FTD", "F", act1, "SET" );
// /**
// $Act1 = SETMOD\\GLEMOD.GetAvailAcc ( "FX-ELQ", FXDGRP\\CBS\\MAX\\CUR, "", self, SETMOD\\SETAMT )
// $DbtKey = \\SETMOD\\SETGLG.SetglgAddAmount ( "SET", "OWN", SETMOD\\DOCCUR, SETMOD\\SETAMT, "SET", "FXD", "F", $Act1, "SET" )
//
// **/
// // cz modify 增加中间中间账户
// if( this.getFxdgrp().getAct().isRolSet() )
// {
// if( this.getFxdgrp().getAct().isDemestic() )
// {
// acctyp = "DB-CLR";
// acc = this.getSetmod().getGlemod().getAvailAcc ( acctyp, this.getSetmod().getDoccur(), this.getFxdgrp().getAct().getPts().getPtyinr(), this, setmodVo.getSetamt() );
// cdtKey = this.getSetmod().getSetglg().setglgAddAmount ( "SET", "APL", this.getSetmod().getDoccur(), setmodVo.getSetamt().negate(), "", "DBC", "C", acc, "" );
// }
// else
// {
// acctyp = "DB-FOG";
// acc = this.getSetmod().getGlemod().getAvailAcc ( acctyp, this.getSetmod().getDoccur(), this.getFxdgrp().getAct().getPts().getPtyinr(), this, setmodVo.getSetamt() );
// cdtKey = this.getSetmod().getSetglg().setglgAddAmount ( "SET", "APL", this.getSetmod().getDoccur(), setmodVo.getSetamt().negate(), "", "PAC", "C", acc, "" );
// }
// }
// else
// {
// if( this.getFxdgrp().getApl().isDemestic() )
// {
// acctyp = "DB-CLR";
// acc = this.getSetmod().getGlemod().getAvailAcc ( acctyp, this.getSetmod().getDoccur(), this.getFxdgrp().getApl().getPts().getPtyinr(), this, setmodVo.getSetamt() );
// cdtKey = this.getSetmod().getSetglg().setglgAddAmount ( "SET", "APL", this.getSetmod().getDoccur(), setmodVo.getSetamt().negate(), "", "DBC", "C", acc, "" );
// }
// else
// {
// acctyp = "DB-FOG";
// acc = this.getSetmod().getGlemod().getAvailAcc ( acctyp, this.getSetmod().getDoccur(), this.getFxdgrp().getApl().getPts().getPtyinr(), this, setmodVo.getSetamt() );
// cdtKey = this.getSetmod().getSetglg().setglgAddAmount ( "SET", "APL", this.getSetmod().getDoccur(), setmodVo.getSetamt().negate(), "", "PAC", "C", acc, "" );
// }
// }
// //C:112306/1125外币
// //如果ACT未赋值,则APL为我行的账户行
// setglgService.setglgAddAmtFldAccCur ( setmodVo.getSetglg(),"SET", dbtKey, this.getFxdgrp().getCbs().getNom1().getCur() );
// baseunit = Dynamic.crossRatebas( this.getFxdgrp().getCbs().getMax().getCur(), this.getFxdgrp().getCbs().getNom1().getCur() );
// setglgService.setglgAddAmtFldExtRat ( "SET", dbtKey, Decimals.mul(1.00,baseunit), this.getFxdgrp().getRec().getRat() );
// }
// this.getSetmod().setglgAllValDat ( this.getFxdgrp().getRec().getValdat(), "D" );
}
}
package com.brilliance.isc.funds.fxtfcm.register.wfe;
import com.brilliance.isc.common.trnism.service.IWfeRegister;
import com.brilliance.isc.common.trnmod.vo.TrnmodVo;
import com.brilliance.isc.common.wfmmod.service.WfmmodService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component("fxtfcm"+"."+ IWfeRegister.REGISTER_NAME)
public class FxtfcmWfeRegister implements IWfeRegister {
@Override
public void wfeRegister(TrnmodVo trnmodVo){
}
}
package com.brilliance.isc.funds.fxtfcm.resource;
import com.brilliance.isc.common.transaction.controller.AbstractTransactionController;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.isc.funds.transfer.transaction.FxtfcmStructMapper;
import com.brilliance.isc.funds.vo.funds.FxtfcmStoreVo;
import com.brilliance.isc.transfer.IStructMapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @program: isc-funds
* @ClassName: FxtfcmResource
* @description: 结售汇平盘确认 Fxtfcm 请求入口
* @author: xiaotong
* @create: 2024-10-11 17:09
*/
@RestController
@RequestMapping("/fxtfcm")
public class FxtfcmResource extends AbstractTransactionController<FxtfcmStoreVo> {
@Resource
private FxtfcmStructMapper fxtfcmStructMapper;
public IStructMapper getStructMapper() {
return fxtfcmStructMapper;
}
}
package com.brilliance.isc.funds.fxtfcm.service;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
public interface FxtfcmService {
void initFxtfcm(FxtfcmStoreBo fxtfcmStoreBo);
void defaultFxtfcm (FxtfcmStoreBo fxtfcmStoreBo);
}
package com.brilliance.isc.funds.fxtfcm.service.Impl;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.isc.funds.fxtfcm.service.FxtfcmService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service
public class FxtfcmServiceImpl implements FxtfcmService {
private static final Logger logger = LoggerFactory.getLogger(FxtfcmServiceImpl.class);
@Override
public void initFxtfcm(FxtfcmStoreBo fxtfcmStoreBo) {
initFxtfcm950(fxtfcmStoreBo);
initFxtfcm1000(fxtfcmStoreBo);
}
private void initFxtfcm950(FxtfcmStoreBo fxtfcmStoreBo) {
}
private void initFxtfcm1000(FxtfcmStoreBo fxtfcmStoreBo) {
// if( Platform.checkUsrBranch("1") )
// {
// this.getFxtp().setPansta( PanStaShow);
// this.getFxtp().getAplp().setPansta( PanStaShow);
// this.getAplaccp().setPansta( PanStaEdit);
// this.getFxtp().getActp().setPansta( PanStaEdit);
// Systems.resetVisible(this.getFxtp(),"ovwp");
// Systems.setActivePanel(this.getCnfp());
// // FXDGRP\\CBS\\NOM1\\CUR = SYSISO
// Systems.resetEnabled(this.getFxtp(),"amtp");
// Systems.setValues(this.getFxdgrp().getRec(),"fxtyp","FB" + CR + "FS");
// }
// else
// {
// this.getFxtp().setPansta( PanStaShow);
// this.getFxtp().getAplp().setPansta( PanStaShow);
// this.getAplaccp().setPansta( PanStaShow);
// this.getFxtp().getActp().setPansta( PanStaShow);
// Systems.resetVisible(this.getFxtp(),"ovwp");
// Systems.setActivePanel(this.getCnfp());
// Systems.resetEnabled(this,"cnfp");
// // FXDGRP\\CBS\\NOM1\\CUR = SYSISO
// Systems.resetEnabled(this.getFxtp(),"amtp");
// }
}
@Override
public void defaultFxtfcm(FxtfcmStoreBo fxtfcmStoreBo) {
}
}
package com.brilliance.isc.funds.fxtfcm.service.Impl;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.common.cbsmod.service.CbsmodService;
import com.brilliance.isc.common.contants.CommonContants;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.liaall.service.LiaallService;
import com.brilliance.isc.common.transaction.AbstractTransactionService;
import com.brilliance.isc.common.transaction.help.TransactionHelpService;
import com.brilliance.isc.common.transaction.help.TransactionServiceSet;
import com.brilliance.isc.common.trnmod.service.TrnmodService;
import com.brilliance.isc.common.trnmod.vo.TrnmodVo;
import com.brilliance.isc.common.vo.BizAmdInfoVo;
import com.brilliance.isc.common.vo.BizInfoVo;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.isc.funds.common.component.FxToolComponent;
import com.brilliance.isc.funds.fxtfcm.check.FxtfcmValidator;
import com.brilliance.isc.funds.fxtfcm.service.FxtfcmService;
import com.brilliance.isc.funds.fxtlop.check.FxtlopValidator;
import com.brilliance.isc.funds.fxtlop.service.FxtlopService;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.Dates;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Map;
/**
* @program: isc-funds
* @ClassName: FxtfcmTransactionServiceImpl
* @description: 结售汇平盘确认 Fxtfcm 业务处理
* @author: xiaotong
* @create: 2024-10-11 15:20
*/
@Service("fxtfcm.transaction")
public class FxtfcmTransactionServiceImpl extends AbstractTransactionService<FxtfcmStoreBo> {
@Resource
private FxtfcmValidator fxtfcmValidator;
@Autowired
private FxtfcmService fxtfcmService;
@Resource
private FxToolComponent fxToolComponent;
@Resource
private TrnmodService trnmodService;
@Resource
private TransactionHelpService transactionHelpService;
@Resource
private CbsmodService cbsmodService;
@Resource
private LiaallService liaallService;
@Resource
private SettleContext settleContext;
@PostConstruct
public void regisertService() {
serviceRegisterMaps.put(CommonContants.SETMOD_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.TRNDOC_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.GLEMOD_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.TRNDIA_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.TRNMOD_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.UMDMOD_SERVICE, "N");
serviceRegisterMaps.put(CommonContants.LIMMOD_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.BOPSET_RMB_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.BOPSET_SZSB_BOPREM_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.BOPSET_CFABOP_SERVICE, "Y");
serviceRegisterMaps.put(CommonContants.FANXIQIAN_SERVICE, "Y");
}
@Override
protected void txnSave(FxtfcmStoreBo transactionVo) {
ruleMtabutSavN500(transactionVo);
}
@Override
protected Map<String, String> txnCheck(FxtfcmStoreBo transactionVo) {
return fxtfcmValidator.validate(transactionVo);
}
@Override
protected BizInfoVo buildBizInfo(FxtfcmStoreBo transactionVo) {
FxdBizInfoVo bizInfoVo = new FxdBizInfoVo();
bizInfoVo.setObjtyp("FXD");
return bizInfoVo;
}
@Override
protected BizAmdInfoVo buildBizAmdInfo(FxtfcmStoreBo transactionVo) {
return null;
}
@Override
public FxtfcmStoreBo init(FxtfcmStoreBo fxtfcmStoreBo) {
fxtfcmStoreBo.reset();
fxtfcmService.initFxtfcm(fxtfcmStoreBo);
fxtfcmService.defaultFxtfcm(fxtfcmStoreBo);
return fxtfcmStoreBo;
}
@Override
public void beforeSave(FxtfcmStoreBo transactionVo) {
transactionVo.reset();
Fxdgrp fxdgrp = transactionVo.getFxdgrp();
TransactionServiceSet transactionServiceSet = transactionHelpService.getTransactionStoreSet();
transactionServiceSet.setRec(fxdgrp.getRec());
transactionServiceSet.setBlk(fxdgrp.getBlk());
transactionServiceSet.setTransactionVo(transactionVo);
fxToolComponent.collectCbsMap(transactionServiceSet, "", fxdgrp.getCbs(), "max", "nom1", "opn1", "opn2");
fxToolComponent.collectPtsList(transactionServiceSet, fxdgrp, null);
settleContext.loadSettleSession(transactionVo.getTransName(), transactionVo.getUserId(), buildBizInfo(transactionVo), transactionServiceSet.getPtsList());
}
@Override
protected void updateBizInfoVo(BizInfoVo bizInfoVo, FxtfcmStoreBo transactionVo) {
}
public void ruleMtabutSavN500(FxtfcmStoreBo transactionVo) {
TrnmodVo trnmodVo = transactionHelpService.getTransactionStoreSet().getTrnmodVo();
fxToolComponent.getref(transactionVo.getFxdgrp());
// 1. Create (rsp. update) Contract (incl. Texts)
transactionVo.getFxdgrp().getRec().setCnfdat( Dates.today());
if( MdaUtils.compareTo(transactionVo.getFxdgrp().getCbs().getOpn2().getAmt(),0) == 0 )
{
transactionVo.getFxdgrp().getRec().setClsdat( Dates.today());
}
transactionVo.getFxdgrp().setAcc(transactionVo.getAplacc());
fxToolComponent.sav(transactionVo.getFxdgrp(), BigDecimal.ZERO);
// 2. Build Transaction from FTDGRP
trnmodService.trnSetFromContract ( trnmodVo);
cbsSav(transactionVo,trnmodVo);
// save documents
//记录116台账
//transactionVo.getNosmod().savNostro();
}
public void cbsSav(FxtfcmStoreBo transactionVo, TrnmodVo trnmodVo) {
cbsmodService.cbsTrnSetNew("TRN",trnmodVo.getTrn().getInr());
//#cgl
//平盘登记后产生4条CBB,MAX,NOM,OPN,OPN2
//后续两个交易分别消OPN和OPN2
String trninr = transactionHelpService.getTrninr();
trnmodService.cbsTrnStore("MAXAMT","AMT1",Dates.today(),transactionVo.getFxdgrp().getCbs().getMax().getCur(),transactionVo.getFxdgrp().getCbs().getMax().getAmt(),MdaUtils.getI18NString("fxtlop","CT000000"),transactionVo.getFxdgrp(),trninr);
trnmodService.cbsTrnStore("NOMAMT","AMT1",Dates.today(),transactionVo.getFxdgrp().getCbs().getNom1().getCur(),transactionVo.getFxdgrp().getCbs().getNom1().getAmt(),MdaUtils.getI18NString("fxtlop","CT000001"),transactionVo.getFxdgrp(),trninr);
/**
if FXDGRP\\REC\\FXTYP.is ( "LB" ) or FXDGRP\\REC\\FXTYP.is ( "LS" ) then
**/
/**
if FXDGRP\\REC\\FXTYP.is ( "LB" ) then
**/
if( MdaUtils.compareTo(transactionVo.getFxdgrp().getRec().getFxtyp(),"LB")== 0 || MdaUtils.compareTo(transactionVo.getFxdgrp().getRec().getFxtyp(),"LS")== 0 )
{
trnmodService.cbsTrnStore("OPNAMT","AMT1",Dates.today(),transactionVo.getFxdgrp().getCbs().getMax().getCur(),transactionVo.getFxdgrp().getCbs().getMax().getAmt(),MdaUtils.getI18NString("fxtlop","CT000002"),transactionVo.getFxdgrp(),trninr);
}
liaallService.storeAll(transactionHelpService.getTransactionStoreSet().getLiaall());
//Platform.cbsTrnCommit();
}
}
package com.brilliance.isc.funds.fxtfop.check;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.funds.bo.funds.FxtfopStoreBo;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.Map;
@Component
public class FxtfopValidator extends AbstractModuleValidator<FxtfopStoreBo> {
@Override
@PostConstruct
public void register() {
super.register();
}
@Override
public Map<String, String> validate(FxtfopStoreBo vo) {
Map<String, String> maps = new HashMap<>();
maps.putAll(super.validate(vo));
return maps;
}
}
package com.brilliance.isc.funds.fxtssb.document;
package com.brilliance.isc.funds.fxtfop.document;
import com.brilliance.isc.doc.handle.impl.AbstractTransactionDocSet;
import com.brilliance.isc.funds.bo.funds.FxtssbStoreBo;
import com.brilliance.isc.funds.bo.funds.FxtfopStoreBo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
......@@ -10,15 +10,15 @@ import javax.annotation.PostConstruct;
/**
* @program: isc-funds
* @ClassName: FxtssbDocSet
* @description: 即期结汇 Fxtssb 面函
* @ClassName: FxtfopDocSet
* @description: 即期结汇 Fxtfop 面函
* @author: huangshunlin
* @create: 2024-10-08 15:39
*/
@Component("fxtssb.docset")
public class FxtssbDocSet extends AbstractTransactionDocSet<FxtssbStoreBo> {
@Component("fxtfop.docset")
public class FxtfopDocSet extends AbstractTransactionDocSet<FxtfopStoreBo> {
private static final Logger logger = LoggerFactory.getLogger(FxtssbDocSet.class);
private static final Logger logger = LoggerFactory.getLogger(FxtfopDocSet.class);
/**
* 构建需要支持的面函组件
......
package com.brilliance.isc.funds.fxtssb.register.diasav;
package com.brilliance.isc.funds.fxtfop.register.diasav;
import com.brilliance.isc.common.register.diasav.IDiasavRegister;
import com.brilliance.isc.common.register.diasav.common.DftcreDiasavRegister;
......@@ -12,13 +12,13 @@ import org.springframework.stereotype.Component;
/**
* @program: isc-funds
* @ClassName: FxtssbDiasavRegister
* @description: 即期结汇 Fxtssb 备忘录注册
* @ClassName: FxtfopDiasavRegister
* @description: 即期结汇 Fxtfop 备忘录注册
* @author: huangshunlin
* @create: 2024-10-08 15:39
*/
@Component("fxtssb.diasavRegister")
public class FxtssbDiasavRegister implements IDiasavRegister {
@Component("fxtfop.diasavRegister")
public class FxtfopDiasavRegister implements IDiasavRegister {
@Autowired
private TrndiaService trndiaService;
......
package com.brilliance.isc.funds.fxtssb.register.doc;
package com.brilliance.isc.funds.fxtfop.register.doc;
import com.brilliance.isc.common.register.document.IDocumentRegister;
import com.brilliance.isc.common.trndoc.vo.TrndocVo;
......@@ -6,13 +6,13 @@ import org.springframework.stereotype.Component;
/**
* @program: isc-funds
* @ClassName: FxtssbDocumentRegister
* @description: 即期结汇 Fxtssb 面函注册
* @ClassName: FxtfopDocumentRegister
* @description: 即期结汇 Fxtfop 面函注册
* @author: huangshunlin
* @create: 2024-10-08 15:39
*/
@Component("fxtssb.documentRegister")
public class FxtssbDocumentRegister implements IDocumentRegister {
@Component("fxtfop.documentRegister")
public class FxtfopDocumentRegister implements IDocumentRegister {
@Override
......
package com.brilliance.isc.funds.fxtfop.register.fee;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.fee.common.SetmodFeeRegister;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("fxtfop.feeRegister")
public class FxtfopFeeRegister extends AbstractFeeRegister {
@Autowired
private SetmodFeeRegister setmodFeeRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
setmodFeeRegister.registerSettlement(setmodVo);
}
private void transRegister(SetmodVo setmodVo) {
}
}
package com.brilliance.isc.funds.fxtfop.register.settle;
import com.brilliance.isc.common.register.settle.DefaultSettleRegister;
import com.brilliance.isc.common.register.settle.ISettleRegister;
import com.brilliance.isc.common.register.settle.common.DftcreSettleRegister;
import com.brilliance.isc.common.register.settle.common.TrtcreSettleRegister;
import com.brilliance.isc.common.setglg.service.SetglgService;
import com.brilliance.isc.common.glemod.service.GlemodService;
import com.brilliance.isc.common.setglg.vo.SetglgVo;
import com.brilliance.isc.common.setmod.service.SetmodService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
@Component("fxtfop.settleRegister")
public class FxtfopSettleRegister implements ISettleRegister {
@Autowired
private SetmodService setmodService;
@Autowired
private SetglgService setglgService;
@Autowired
private DefaultSettleRegister defaultSettleRegister;
@Autowired
private GlemodService glemodService;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
defaultSettleRegister.registerSettlement(setmodVo);
//dftcreSettleRegister.registerSettlement(setmodVo);
//trtcreSettleRegister.registerSettlement(setmodVo);
}
/**
* source:fxtfop.0010.script
*/
private void transRegister(SetmodVo setmodVo) {
//取得上下文
FxdBizInfoVo rec = (FxdBizInfoVo) setmodVo.getRec();
String maxCur=NULLSTR;
BigDecimal maxAmt = BigDecimal.ZERO;
String nom1Cur = NULLSTR;
BigDecimal nom1Amt = BigDecimal.ZERO;
if (setmodVo.getCbsMap().get("MAX") != null) {
maxAmt = setmodVo.getCbsMap().get("MAX").getAmt();
maxCur= setmodVo.getCbsMap().get("MAX").getCur();
}
if (setmodVo.getCbsMap().get("NOM1") != null) {
nom1Amt = setmodVo.getCbsMap().get("NOM1").getAmt();
nom1Cur= setmodVo.getCbsMap().get("NOM1").getCur();
}
setmodVo.setDoccur(maxCur);
setmodVo.setDocamt(maxAmt);
setmodVo.setOpnamt(maxAmt);
SetglgVo setglg = setmodVo.getSetglg();
setglgService.setglgClrAmount(setglg, "TRN");
setglgService.setglgClrAmount(setglg, "SET");
String act1 = NULLSTR;
String ddtKey = NULLSTR;
String act4 = NULLSTR;
String cbtKey = NULLSTR;
if( ! MdaUtils.isEmpty(nom1Amt) && ! MdaUtils.isEmpty(rec.getFxtyp() ))
{
//D 281101
act1=glemodService.getAvailAcc( "FX-EXS",maxCur,"", setmodVo.getSetamt());
ddtKey =setglgService.setglgAddAmount ( setglg,"TRN", "OWN", maxCur, setmodVo.getSetamt(), "", "FXD", "C", act1, "" );
//C:281105
act4 = glemodService.getAvailAcc ( "FX-ELQ",maxCur, "", setmodVo.getSetamt() );
cbtKey = setglgService.setglgAddAmount ( setglg,"SET", "OWN", maxCur, setmodVo.getSetamt().negate(), "SET", "FXC", "F", act4, "SET" );
}
}
}
package com.brilliance.isc.funds.fxtfop.resource;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.transaction.controller.AbstractTransactionController;
import com.brilliance.isc.funds.fxtfop.service.FxtfopTransactionServiceImpl;
import com.brilliance.isc.funds.transfer.transaction.FxtfopStructMapper;
import com.brilliance.isc.funds.vo.funds.FxtfopStoreVo;
import com.brilliance.isc.funds.vo.funds.FxtssbStoreVo;
import com.brilliance.isc.transfer.IStructMapper;
import com.brilliance.isc.vo.ResponseSet;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @program: isc-funds
* @ClassName: FxtfopResource
* @description: 即期结汇 Fxtfop 请求入口
* @author: huangshunlin
* @create: 2024-10-08 15:34
*/
@RestController
@RequestMapping("/fxtfop")
@Api("外币兑换登记")
public class FxtfopResource extends AbstractTransactionController<FxtfopStoreVo> {
@Resource
private FxtfopStructMapper fxtfopStructMapper;
public IStructMapper getStructMapper() {
return fxtfopStructMapper;
}
@Resource(name = "fxtfop.transaction")
FxtfopTransactionServiceImpl fxtfopTransactionService;
@Autowired
private SettleContext settleContext;
/**
* 根据结售汇类型 等获取业务参号
*
* @param fxtfopStoreVo
* @return
*/
@PostMapping("/getRef")
public ResponseSet<String> getRef(@RequestBody FxtfopStoreVo fxtfopStoreVo) {
String ref = fxtfopTransactionService.getRef(fxtfopStoreVo);
return ResponseSet.simpleSuccess(ref);
}
@PostMapping("/defaultRateN1000")
public ResponseSet defaultRateN1000(@RequestBody FxtfopStoreVo fxtfopStoreVo) {
try {
settleContext.loadSettleSession("FXTFOP","","");
fxtfopTransactionService.defaultRateN1000(fxtfopStoreVo);
return ResponseSet.simpleSuccess(fxtfopStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultCalculateN1100")
public ResponseSet defaultCalculateN1100(@RequestBody FxtfopStoreVo fxtfopStoreVo) {
try {
settleContext.loadSettleSession("FXTFOP","","");
fxtfopTransactionService.defaultCalculateN1100(fxtfopStoreVo);
return ResponseSet.simpleSuccess(fxtfopStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
}
package com.brilliance.isc.funds.fxtlop.check;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
......@@ -32,5 +36,51 @@ public class FxtlopValidator extends AbstractModuleValidator<FxtlopStoreBo> {
return maps;
}
/**
* source:fxtlop.0011.script
*/
@Validate(path="fxdgrp.rec.opndat")
public ValidResult checkFxdgrpRecOpndatN1000(FxtlopStoreBo vo){
if( MdaUtils.isEmpty(vo.getFxdgrp().getRec().getOpndat()) )
{
return errorMandatory();
}
return null;
}
/**
* source:fxtlop.0012.script
*/
@Validate(path="fxdgrp.rec.valdat")
public ValidResult checkFxdgrpRecValdatN1000(FxtlopStoreBo vo){
if( MdaUtils.isEmpty(vo.getFxdgrp().getRec().getValdat()) )
{
return errorMandatory();
}
return null;
}
/**
* source:fxtlop.0013.script
*/
@Validate(path="fxdgrp.rec.rat")
public ValidResult checkFxdgrpRecRatN1000(FxtlopStoreBo vo){
if( MdaUtils.isEmpty(vo.getFxdgrp().getRec().getRat()) )
{
return errorMandatory();
}
return null;
}
/**
* source:fxtlop.0014.script
*/
@Validate(path="fxdgrp.apl.pts.extkey")
public ValidResult checkFxdgrpAplPtsExtkeyN1000(FxtlopStoreBo vo){
if( MdaUtils.isEmpty(vo.getFxdgrp().getApl().getPts().getExtkey()) )
{
return errorMandatory();
}
return null;
}
}
package com.brilliance.isc.funds.fxtlop.register.fee;
import com.brilliance.isc.common.liaall.service.LiaallService;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.fee.common.DocumentFeeRegister;
import com.brilliance.isc.common.register.fee.common.LiaallFeeRegister;
import com.brilliance.isc.common.register.fee.common.SetmodFeeRegister;
import com.brilliance.isc.common.setfeg.service.SetfegService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.swing.text.Document;
@Component("fxtlop.feeRegister")
public class FxtlopFeeRegister extends AbstractFeeRegister {
@Autowired
private SetfegService setfegService;
@Autowired
private DocumentFeeRegister documentFeeRegister;
@Autowired
private LiaallFeeRegister liaallFeeRegister;
@Autowired
private SetmodFeeRegister setmodFeeRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
setmodFeeRegister.registerSettlement(setmodVo);
documentFeeRegister.registerSettlement(setmodVo);
liaallFeeRegister.registerSettlement(setmodVo);
}
}
package com.brilliance.isc.funds.fxtlop.register.liaall;
import com.brilliance.isc.common.liaall.service.LiaallService;
import com.brilliance.isc.common.liaall.vo.LiaallVo;
import com.brilliance.isc.common.register.liaall.ILiaallRegister;
import com.brilliance.isc.common.register.liaall.common.LiaallRegister;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("fxtlop.liaallSetTransaction")
public class FxtlopLiaallRegister implements ILiaallRegister {
@Autowired
private LiaallRegister liaallSetRegister;
@Override
public void liaallSetTransaction(LiaallVo liaallVo) {
liaallSetRegister.liaallSetTransaction(liaallVo);
}
}
package com.brilliance.isc.funds.fxtlop.register.settle;
import com.brilliance.isc.common.glemod.service.GlemodService;
import com.brilliance.isc.common.register.settle.DefaultSettleRegister;
import com.brilliance.isc.common.register.settle.ISettleRegister;
import com.brilliance.isc.common.setglg.service.SetglgService;
import com.brilliance.isc.common.setglg.vo.SetglgVo;
import com.brilliance.isc.common.setmod.service.SetmodService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
@Component("fxtlop.settleRegister")
public class FxtlopSettleRegister implements ISettleRegister {
@Autowired
private SetmodService setmodService;
@Autowired
private SetglgService setglgService;
@Autowired
private DefaultSettleRegister defaultSettleRegister;
@Autowired
private GlemodService glemodService;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
defaultSettleRegister.registerSettlement(setmodVo);
}
private void transRegister(SetmodVo setmodVo) {
FxdBizInfoVo rec = (FxdBizInfoVo) setmodVo.getRec();
BigDecimal maxAmt = BigDecimal.ZERO;
BigDecimal nom1Amt = BigDecimal.ZERO;
if (setmodVo.getCbsMap().get("MAX") != null) {
maxAmt = setmodVo.getCbsMap().get("MAX").getAmt();
}
String nom1Cur = NULLSTR;
if (setmodVo.getCbsMap().get("NOM1") != null) {
nom1Amt = setmodVo.getCbsMap().get("NOM1").getAmt();
nom1Cur = setmodVo.getCbsMap().get("NOM1").getCur();
}
setmodVo.setDocamt(maxAmt);
setmodVo.setOpnamt(maxAmt);
SetglgVo setglg = setmodVo.getSetglg();
setglgService.setglgClrAmount ( setmodVo.getSetglg(),"TRN" );
setglgService.setglgClrAmount ( setmodVo.getSetglg(),"SET" );
//平盘登记交易不产生分录
//补记外币结转账务
//###############################
//!买入
//!
//!1、结转:从代客即期结售汇科目(外币)结转到结售汇平盘科目:
//!借:281110结售汇对外平盘 (外币)
//!贷:281106代客即期结售汇 (外币)
//!------------------------------
//!卖出
//!
//!1、结转:从代客即期结售汇科目(外币)结转到结售汇平盘科目:
//!借:281106代客即期结售汇 (外币)
//!贷:281110结售汇对外平盘 (外币)
//###############################
String act1 = null;
String ddtKey = null;
String act4 = null;
String cbtKey = null;
if( ! MdaUtils.isEmpty(rec.getFxtyp()) )
{
// //买入登记
// if( MdaUtils.compareTo(Strings.mid(rec.getFxtyp(),2,1),"B") == 0 )
// {
// //D 281110
// act1 = glemodService.getAvailAcc ( "FX-SLQ", setmodVo.getDoccur(), "", setmodVo.getDocamt() );
// ddtKey = setglgService.setglgAddAmount ( setmodVo.getSetglg(),"TRN", "OWN", setmodVo.getDoccur(), setmodVo.getDocamt(), "", "FXD", "C", act1, "" );
// //C:281106
// act4 = glemodService.getAvailAcc ( "FX-UTL", setmodVo.getDoccur(), "", setmodVo.getDocamt() );
// cbtKey = setglgService.setglgAddAmount ( setmodVo.getSetglg(),"SET", "OWN", setmodVo.getDoccur(), setmodVo.getDocamt().negate(), "SET", "FXC", "F", act4, "SET" );
// }
// else
// {
// //卖出登记
// //D:281106
// act4 = glemodService.getAvailAcc ( "FX-UTL", setmodVo.getDoccur(), "", setmodVo.getDocamt() );
// ddtKey = setglgService.setglgAddAmount ( setmodVo.getSetglg(),"SET", "OWN", setmodVo.getDoccur(), setmodVo.getDocamt(), "SET", "FXD", "F", act4, "SET" );
// //C 281110
// act1 = glemodService.getAvailAcc ( "FX-SLQ", setmodVo.getDoccur(), "", setmodVo.getSetamt() );
// cbtKey = setglgService.setglgAddAmount ( setmodVo.getSetglg(),"TRN", "OWN", setmodVo.getDoccur(), setmodVo.getDocamt().negate(), "", "FXC", "C", act1, "" );
// }
}
}
}
package com.brilliance.isc.funds.fxtlop.register.wfe;
import com.brilliance.isc.common.transaction.help.TransactionHelpService;
import com.brilliance.isc.common.trnism.service.IWfeRegister;
import com.brilliance.isc.common.trnmod.vo.TrnmodVo;
import com.brilliance.isc.common.wfmmod.service.WfmmodService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component("fxtlop"+"."+ IWfeRegister.REGISTER_NAME)
public class FxtlopWfeRegister implements IWfeRegister {
@Resource
private WfmmodService wfmmodService;
@Resource
private TransactionHelpService transactionHelpService;
@Override
public void wfeRegister(TrnmodVo trnmodVo) {
}
}
package com.brilliance.isc.funds.fxtlop.resource;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.transaction.controller.AbstractTransactionController;
import com.brilliance.isc.funds.fxtlop.service.impl.FxtlopTransactionServiceImpl;
import com.brilliance.isc.funds.transfer.transaction.FxtlopStructMapper;
import com.brilliance.isc.funds.vo.funds.FxtlopStoreVo;
import com.brilliance.isc.funds.vo.funds.FxtssbStoreVo;
import com.brilliance.isc.transfer.IStructMapper;
import com.brilliance.isc.vo.ResponseSet;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -29,7 +36,44 @@ public class FxtlopResource extends AbstractTransactionController<FxtlopStoreVo>
return fxtlopStructMapper;
}
@Resource(name = "fxtlop.transaction")
FxtlopTransactionServiceImpl fxtlopTransactionService;
@Autowired
private SettleContext settleContext;
@PostMapping("/getRef")
public ResponseSet<String> getRef(@RequestBody FxtlopStoreVo fxtlopStoreVo) {
String ref = fxtlopTransactionService.getRef(fxtlopStoreVo);
return ResponseSet.simpleSuccess(ref);
}
@PostMapping("/defaultRateN1000")
public ResponseSet defaultRateN1000(@RequestBody FxtlopStoreVo fxtlopStoreVo) {
try {
settleContext.loadSettleSession("FXTLOP","","");
fxtlopTransactionService.defaultRateN1000(fxtlopStoreVo);
return ResponseSet.simpleSuccess(fxtlopStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultCalculateN1100")
public ResponseSet defaultCalculateN1100(@RequestBody FxtlopStoreVo fxtlopStoreVo) {
try {
settleContext.loadSettleSession("FXTLOP","","");
fxtlopTransactionService.defaultCalculateN1100(fxtlopStoreVo);
return ResponseSet.simpleSuccess(fxtlopStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
}
package com.brilliance.isc.funds.fxtlop.service;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
public interface FxtlopService {
void initFxtlop(FxtlopStoreBo fxtlopStoreBo);
}
package com.brilliance.isc.funds.fxtlop.service;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
public interface FxtpService {
void initFxtp(FxtlopStoreBo fxtlopStoreBo);
void defaultFxtp(FxtlopStoreBo fxtlopStoreBo);
void defaultCalculateN1100(Fxdgrp fxdgrp, Fxtp fxtp);
}
package com.brilliance.isc.funds.fxtlop.service.impl;
import com.brilliance.isc.common.cbsmod.service.XrtmodService;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.isc.funds.fxtlop.service.FxtlopService;
import com.brilliance.mda.runtime.mda.util.Dates;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
@Service
public class FxtlopServiceImpl implements FxtlopService {
@Autowired
XrtmodService xrtmodService;
private static final Logger logger = LoggerFactory.getLogger(FxtlopServiceImpl.class);
@Override
public void initFxtlop(FxtlopStoreBo fxtlopStoreBo) {
initFxtlop950(fxtlopStoreBo);
initFxtlop1000(fxtlopStoreBo);
}
private void initFxtlop950(FxtlopStoreBo fxtlopStoreBo) {
}
private void initFxtlop1000(FxtlopStoreBo fxtlopStoreBo) {
fxtlopStoreBo.getFxdgrp().getCbs().getNom1().setCur(xrtmodService.sysiso());
// 成交日
if( MdaUtils.isEmpty(fxtlopStoreBo.getFxdgrp().getRec().getOpndat()) || (!fxtlopStoreBo.getFxdgrp().getRec().isModified("opndat")) )
{
fxtlopStoreBo.getFxdgrp().getRec().setOpndat( Dates.today());
fxtlopStoreBo.getFxdgrp().getRec().resetModified("opndat");
}
// 起息日
if( !fxtlopStoreBo.getFxdgrp().getRec().isModified("valdat") )
{
fxtlopStoreBo.getFxdgrp().getRec().setValdat( fxtlopStoreBo.getFxdgrp().getRec().getOpndat());
}
String extkey = SettleContext.getUserSession().getUsr().getExtkey();
fxtlopStoreBo.getFxdgrp().getRec().setUsr(extkey);
}
}
package com.brilliance.isc.funds.fxtlop.service.impl;
import com.brilliance.isc.bo.Cbb;
import com.brilliance.isc.bo.Cur;
import com.brilliance.isc.bo.Fxd;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.cbsmod.service.XrtmodService;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.isc.funds.fxtlop.service.FxtpService;
import com.brilliance.isc.mda.dao.CurMapper;
import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Objects;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
@Service
public class FxtpServiceImpl implements FxtpService {
@Resource
private XrtmodService xrtmodService;
@Resource
private CurMapper curMapper;
@Override
public void initFxtp(FxtlopStoreBo fxtlopStoreBo) {
}
@Override
public void defaultFxtp(FxtlopStoreBo fxtlopStoreBo) {
String frame = SettleContext.getTransName();
if (MdaUtils.compareTo(frame, "FXTSOP") != 0 && MdaUtils.compareTo(frame, "FXTBOP") != 0 && MdaUtils.compareTo(frame, "FXTEOP") != 0) {
// //! Read USRGET\\USR according to USR.
// if( MdaUtils.compareTo(fxtlopStoreBo.getUsrget().getUsr().getExtkey(),fxtlopStoreBo.getFxdgrp().getRec().getUsr()) != 0 )
// {
// fxtlopStoreBo.getUsrget().recReadRecordbyExtkey ( fxtlopStoreBo.getFxdgrp().getRec().getUsr() );
// if( MdaUtils.compareTo(fxtlopStoreBo.getPansta(),PanStaShow) != 0 )
// {
// if( ctx.getErrorCode() == tdOdbcNotFound )
// {
// Dynamic.sysWarningSet( SYSWRNTypeWarning, Strings.getText(MdaUtils.getI18NString("fxtp","CT000003"),fxtlopStoreBo.getFxdgrp().getRec().getUsr()), "USRINVALID" );
// }
// else
// {
// ctx.reraise();
// Dynamic.sysWarningSet( SYSWRNTypeWarning, "", "USRINVALID" );
// }
// }
// else
// {
// if( ctx.getErrorCode() != tdOdbcNotFound )
// {
// ctx.reraise();
// }
// }
// }
// Dynamic.trnModCopyModFlag( MdaDriver.getDatafield(fxtlopStoreBo.getFxdgrp().getRec(),"usr"), MdaDriver.getDatafield(fxtlopStoreBo.getUsrget().getUsr(),"extkey") );
// }
// if( Platform.checkUsrBranch("1") || MdaUtils.compareTo(frame,"FXTSOP") == 0 || MdaUtils.compareTo(frame,"FXTBOP") == 0 || MdaUtils.compareTo(frame,"FXTEOP") == 0 )
// {
// if( MdaUtils.compareTo(fxtlopStoreBo.getUsrget().getUsr().getExtkey(),fxtlopStoreBo.getFxdgrp().getRec().getOwnusr()) != 0 )
// {
// fxtlopStoreBo.getUsrget().recReadRecordbyExtkey ( fxtlopStoreBo.getFxdgrp().getRec().getOwnusr() );
// if( MdaUtils.compareTo(fxtlopStoreBo.getPansta(),PanStaShow) != 0 )
// {
// if( ctx.getErrorCode() == tdOdbcNotFound )
// {
// Dynamic.sysWarningSet( SYSWRNTypeWarning, Strings.getText(MdaUtils.getI18NString("fxtp","CT000004"),fxtlopStoreBo.getFxdgrp().getRec().getOwnusr()), "USRINVALID" );
// }
// else
// {
// ctx.reraise();
// Dynamic.sysWarningSet( SYSWRNTypeWarning, "", "USRINVALID" );
// }
// }
// else
// {
// if( ctx.getErrorCode() != tdOdbcNotFound )
// {
// ctx.reraise();
// }
// }
// }
// Dynamic.trnModCopyModFlag( MdaDriver.getDatafield(fxtlopStoreBo.getFxdgrp().getRec(),"ownusr"), MdaDriver.getDatafield(fxtlopStoreBo.getUsrget().getUsr(),"extkey") );
}
}
/**
* source:fxtp.0013.script
*/
@Override
// @Default(value={"fxdgrp.cbs.max.amt","fxdgrp.cbs.nom1.amt"},order=1100)
public void defaultCalculateN1100(Fxdgrp fxdgrp, Fxtp fxtp) {
fxdgrp.reset();
fxtp.reset();
Fxd rec = fxdgrp.getRec();
Cbb max = fxdgrp.getCbs().getMax();
Cbb nom1 = fxdgrp.getCbs().getNom1();
int bas = 0;
String sql = NULLSTR;
BigDecimal baseunit = null;
if (MdaUtils.compareTo(fxtp.getCalflg(), "") == 0) {
if (MdaUtils.compareTo(fxtp.getFrgchk(), "X") == 0) { //换算外币
if (!MdaUtils.isEmpty(rec.getRat()) && !MdaUtils.isEmpty(nom1.getCur())) {
if (Strings.pos("-RUB-JPY-KRW-", max.getCur()) > 0 && Strings.pos("-FXTLOP-FXTLCM-FXTLCN-", SettleContext.getTransName()) > 0) {
if (MdaUtils.compareTo(rec.getRat(), 0) > 0) {
nom1.setAmt(xrtmodService.amtRnd(Decimals.div(max.getAmt(), rec.getRat()), nom1.getCur()));
}
} else {
nom1.setAmt(xrtmodService.amtRnd(Decimals.mul(max.getAmt(), rec.getRat()), nom1.getCur()));
Cur queryCur = new Cur();
queryCur.setCod(max.getCur());
Cur cur = curMapper.selectByCod(queryCur);
// sql = "SELECT BAS FROM CUR WHERE COD = '" + fxdgrp.getCbs().getMax().getCur() + "'";
if (Objects.nonNull(cur)) {
bas = cur.getBas();
} else {
bas = 1;
}
baseunit = xrtmodService.crossRatebas(max.getCur(), nom1.getCur());
if (MdaUtils.compareTo(baseunit, bas) >= 0) {
nom1.setAmt(Decimals.div(nom1.getAmt(), bas));
} else {
if (MdaUtils.compareTo(baseunit, 1) < 0) {
nom1.setAmt(Decimals.div(nom1.getAmt(), bas));
} else {
nom1.setAmt(Decimals.div(nom1.getAmt(), baseunit));
}
}
}
} else {
nom1.setAmt(new BigDecimal(0));
}
} else {
if (MdaUtils.compareTo(fxtp.getCnychk(), "X") == 0) { //换算人民币
if (!MdaUtils.isEmpty(rec.getRat()) && !MdaUtils.isEmpty(max.getCur())) {
max.setAmt(xrtmodService.amtRnd(Decimals.div(nom1.getAmt(), rec.getRat()), max.getCur()));
Cur queryCur = new Cur();
queryCur.setCod(max.getCur());
Cur cur = curMapper.selectByCod(queryCur);
// sql = "SELECT BAS FROM CUR WHERE COD = '" + fxdgrp.getCbs().getMax().getCur() + "'";
if (Objects.nonNull(cur)) {
bas = cur.getBas();
} else {
bas = 1;
}
max.setAmt(Decimals.mul(max.getAmt(), bas));
} else {
max.setAmt(new BigDecimal(0));
}
}
}
} else {
if (!MdaUtils.isEmpty(rec.getRat()) && !MdaUtils.isEmpty(max.getCur())) {
max.setAmt(xrtmodService.amtRnd(Decimals.div(nom1.getAmt(), rec.getRat()), max.getCur()));
Cur queryCur = new Cur();
queryCur.setCod(max.getCur());
Cur cur = curMapper.selectByCod(queryCur);
// sql = "SELECT BAS FROM CUR WHERE COD = '" + fxdgrp.getCbs().getMax().getCur() + "'";
if (Objects.nonNull(cur)) {
bas = cur.getBas();
} else {
bas = 1;
}
nom1.setAmt(Decimals.mul(nom1.getAmt(), bas));
} else {
max.setAmt(new BigDecimal(0));
}
}
}
}
package com.brilliance.isc.funds.fxtsel.resource;
import com.brilliance.isc.vo.ResponseSet;
import com.brilliance.isc.vo.TrnCodeQueryVo;
import com.brilliance.isc.vo.funds.FxtselQueryVo;
import com.brilliance.isc.funds.fxtsel.service.FxtselService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
@RestController
@RequestMapping("/fxtsel")
public class FxtselResource {
@Autowired
private FxtselService fxtselService;
/*
*
* */
@PostMapping("/list")
public ResponseSet list(@RequestBody FxtselQueryVo fxtselQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.list(fxtselQueryVo));
}
@PostMapping("/listjsh")
public ResponseSet listjsh(@RequestBody FxtselQueryVo fxtselQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.listjsh(fxtselQueryVo));
}
@PostMapping("/listjshpp")
public ResponseSet listjshpp(@RequestBody FxtselQueryVo fxtselQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.listjshpp(fxtselQueryVo));
}
@PostMapping("/listdhpp")
public ResponseSet listdhpp(@RequestBody FxtselQueryVo fxtselQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.listdhpp(fxtselQueryVo));
}
/**
* 处理按钮查看能够进行的交易
*/
@ApiOperation("处理按钮查看能够进行的交易")
@PostMapping("/dealWithByOwnref")
public ResponseSet dealWithByOwnref(@RequestBody TrnCodeQueryVo trnCodeQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.dealWithByInr(trnCodeQueryVo));
}
@ApiOperation("处理按钮查看能够进行的交易")
@PostMapping("/dealWithByInr")
public ResponseSet dealWithByInr(@RequestBody TrnCodeQueryVo trnCodeQueryVo) {
return ResponseSet.simpleSuccess(fxtselService.dealWithByInr(trnCodeQueryVo));
}
/**
* 详情页面初始化
*/
@PostMapping("/selectXxdByPrimaryKey")
public ResponseSet selectXxdByPrimaryKey(@RequestBody Map<String,String> map){
return ResponseSet.simpleSuccess(fxtselService.selectXxdByPrimaryKey(map));
}
}
package com.brilliance.isc.funds.fxtsel.service;
import com.brilliance.isc.vo.TrncodVo;
import com.brilliance.isc.vo.TrnCodeQueryVo;
import com.brilliance.isc.vo.funds.FxtselQueryVo;
import com.github.pagehelper.PageInfo;
import java.util.List;
import java.util.Map;
public interface FxtselService {
PageInfo list(FxtselQueryVo fxtselQueryVo);
PageInfo listjsh(FxtselQueryVo fxtselQueryVo);
PageInfo listdhpp(FxtselQueryVo fxtselQueryVo);
PageInfo listjshpp(FxtselQueryVo fxtselQueryVo);
List<TrncodVo> dealWithByInr(TrnCodeQueryVo trnCodeQueryVo);
Object selectXxdByPrimaryKey(Map<String, String> map);
}
package com.brilliance.isc.funds.fxtsel.service.impl;
import com.brilliance.isc.bo.Srm;
import com.brilliance.isc.bo.Trn;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Lidgrp;
import com.brilliance.isc.bo.model.Ltdgrp;
import com.brilliance.isc.common.sysmod.SysmodService;
import com.brilliance.isc.funds.bo.funds.FxtfopStoreBo;
import com.brilliance.isc.funds.common.component.FxToolComponent;
import com.brilliance.isc.common.util.StringUtils;
//import com.brilliance.isc.funds.bo.Fxdgrp;
import com.brilliance.isc.mda.dao.FxdMapper;
import com.brilliance.isc.mda.dao.TrnMapper;
import com.brilliance.isc.vo.TrncodVo;
import com.brilliance.isc.vo.funds.FxtselQueryVo;
import com.brilliance.isc.vo.TrnCodeQueryVo;
import com.brilliance.isc.vo.funds.FxdWithPtsCbbResponseVo;
import com.brilliance.isc.funds.fxtsel.service.FxtselService;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Service
public class FxtselServiceImpl implements FxtselService {
private Logger logger = LoggerFactory.getLogger(FxtselServiceImpl.class);
@Autowired
private FxdMapper fxdMapper;
@Resource
private TrnMapper trnMapper;
@Resource
private SysmodService sysmodService;
@Autowired
private FxToolComponent fxToolComponent;
@Override
public PageInfo list(FxtselQueryVo fxtselQueryVo) {
PageHelper.startPage(fxtselQueryVo.getPageNumber(),fxtselQueryVo.getPageSize()).setReasonable(true);
List<FxdWithPtsCbbResponseVo> fxdList = fxdMapper.queryFxd(fxtselQueryVo);
return new PageInfo(fxdList);
}
@Override
public PageInfo listjshpp(FxtselQueryVo fxtselQueryVo) {
//FB+FS
List<String> fxtypList=new ArrayList<>();
fxtypList.add("LB");
fxtypList.add("LS");
fxtselQueryVo.setFxtypList(fxtypList);
PageHelper.startPage(fxtselQueryVo.getPageNumber(),fxtselQueryVo.getPageSize()).setReasonable(true);
List<FxdWithPtsCbbResponseVo> fxdList = fxdMapper.queryFxd(fxtselQueryVo);
return new PageInfo(fxdList);
}
@Override
public PageInfo listdhpp(FxtselQueryVo fxtselQueryVo) {
//FB+FS
List<String> fxtypList=new ArrayList<>();
fxtypList.add("FB");
fxtypList.add("FS");
fxtselQueryVo.setFxtypList(fxtypList);
PageHelper.startPage(fxtselQueryVo.getPageNumber(),fxtselQueryVo.getPageSize()).setReasonable(true);
List<FxdWithPtsCbbResponseVo> fxdList = fxdMapper.queryFxd(fxtselQueryVo);
return new PageInfo(fxdList);
}
@Override
public PageInfo listjsh(FxtselQueryVo fxtselQueryVo) {
//FB+FS
List<String> fxtypList=new ArrayList<>();
fxtypList.add("SS");
fxtypList.add("SB");
fxtselQueryVo.setFxtypList(fxtypList);
PageHelper.startPage(fxtselQueryVo.getPageNumber(),fxtselQueryVo.getPageSize()).setReasonable(true);
List<FxdWithPtsCbbResponseVo> fxdList = fxdMapper.queryFxd(fxtselQueryVo);
return new PageInfo(fxdList);
}
@Override
public List<TrncodVo> dealWithByInr(TrnCodeQueryVo trnCodeQueryVo) {
List<TrncodVo> result = Lists.newArrayList();
Fxdgrp fxdgrp=new Fxdgrp();
fxdgrp = fxToolComponent.getFxdgrpByInr(trnCodeQueryVo.getInr());
String[] fxTraArray = {"FXTFCM", "FXTLCN"};
String[] fxButArray = {"外币兑换平盘确认", "外币兑换平盘销账"};
String isAllowed = "";
for (int i = 0; i < fxTraArray.length; i++) {
TrncodVo trncodVo = new TrncodVo(fxTraArray[i], fxButArray[i], isAllowed,"Y","");
fxToolComponent.isFXTrnAllowed(fxdgrp,trncodVo);
result.add(trncodVo);
}
return result;
}
@Override
public Object selectXxdByPrimaryKey(Map<String, String> map) {
String objinr = map.get("objinr");
String objtyp = map.get("objtyp");
String pntinr = map.get("pntinr");
FxtfopStoreBo fxtfopStoreBo = new FxtfopStoreBo();
fxtfopStoreBo.reset();
if(objinr.length() == 16) {
Trn trnLid = trnMapper.selectByObjinrTrn(objtyp, objinr, "FXTFOP");
if (!Objects.isNull(trnLid)) {
fxtfopStoreBo = sysmodService.streamGetNameInSubDir(FxtfopStoreBo.class, trnLid.getInr());
}
}
fxtfopStoreBo.setFxdgrp(fxToolComponent.getFxdgrpByInr(objinr));
return fxtfopStoreBo;
}
}
package com.brilliance.isc.funds.fxtssb.check;
import com.brilliance.isc.bo.Fxd;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.funds.bo.funds.FxtssbStoreBo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
......@@ -26,11 +31,97 @@ public class FxtssbValidator extends AbstractModuleValidator<FxtssbStoreBo> {
}
@Override
public Map<String, String> validate(FxtssbStoreBo vo) {
public Map<String, String> validate(FxtssbStoreBo bo) {
Map<String, String> maps = new HashMap<>();
maps.putAll(super.validate(vo));
maps.putAll(super.validate(bo));
return maps;
}
/**
* source:fxtssb.0017.script
*/
@Validate(path = "fxdgrp.rec.trnman")
public ValidResult checkFxdgrpRecTrnmanN1000(FxtssbStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getTrnman())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0018.script
*/
@Validate(path = "fxdgrp.rec.trdint")
public ValidResult checkFxdgrpRecTrdintN1000(FxtssbStoreBo bo) {
Fxd rec = bo.getFxdgrp().getRec();
if (MdaUtils.compareTo(Strings.mid(rec.getFxtyp(), 2, 1), "B") == 0 && MdaUtils.isEmpty(rec.getTrdint())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0019.script
*/
@Validate(path = "fxdgrp.rec.trdout")
public ValidResult checkFxdgrpRecTrdoutN1000(FxtssbStoreBo bo) {
Fxd rec = bo.getFxdgrp().getRec();
if (MdaUtils.compareTo(Strings.mid(rec.getFxtyp(), 2, 1), "S") == 0
&& MdaUtils.isEmpty(rec.getTrdout())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0020.script
*/
@Validate(path = "fxdgrp.rec.acc")
public ValidResult checkFxdgrpRecAccN1000(FxtssbStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getAcc())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0021.script
*/
@Validate(path = "fxdgrp.rec.acc2")
public ValidResult checkFxdgrpRecAcc2N1000(FxtssbStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getAcc2())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0027.script
*/
@Validate(path = "fxdgrp.rec.dsp")
public ValidResult checkFxdgrpRecDspN1000(FxtssbStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getDsp())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtssb.0028.script
*/
@Validate(path = "fxdgrp.rec.dsp2")
public ValidResult checkFxdgrpRecDsp2N1000(FxtssbStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getDsp2())) {
return errorMandatory();
}
return null;
}
}
package com.brilliance.isc.funds.fxtssb.register.fee;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.fee.common.SetmodFeeRegister;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("fxtssb.feeRegister")
public class FxtssbFeeRegister extends AbstractFeeRegister {
@Autowired
private SetmodFeeRegister setmodFeeRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
setmodFeeRegister.registerSettlement(setmodVo);
}
private void transRegister(SetmodVo setmodVo) {
}
}
package com.brilliance.isc.funds.fxtssb.register.settle;
import com.brilliance.isc.common.register.settle.DefaultSettleRegister;
import com.brilliance.isc.common.register.settle.ISettleRegister;
import com.brilliance.isc.common.register.settle.common.DftcreSettleRegister;
import com.brilliance.isc.common.register.settle.common.TrtcreSettleRegister;
import com.brilliance.isc.common.setglg.service.SetglgService;
import com.brilliance.isc.common.setglg.vo.SetglgVo;
import com.brilliance.isc.common.setmod.service.SetmodService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
@Component("fxtssb.settleRegister")
public class FxtssbSettleRegister implements ISettleRegister {
@Autowired
private SetmodService setmodService;
@Autowired
private SetglgService setglgService;
@Autowired
private DefaultSettleRegister defaultSettleRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
defaultSettleRegister.registerSettlement(setmodVo);
}
/**
* source:fxtssb.0010.script
*/
private void transRegister(SetmodVo setmodVo) {
FxdBizInfoVo rec = (FxdBizInfoVo) setmodVo.getRec();
BigDecimal maxAmt = BigDecimal.ZERO;
BigDecimal nom1Amt = BigDecimal.ZERO;
if (setmodVo.getCbsMap().get("MAX") != null) {
maxAmt = setmodVo.getCbsMap().get("MAX").getAmt();
}
String nom1Cur = NULLSTR;
if (setmodVo.getCbsMap().get("NOM1") != null) {
nom1Amt = setmodVo.getCbsMap().get("NOM1").getAmt();
nom1Cur = setmodVo.getCbsMap().get("NOM1").getCur();
}
setmodVo.setDocamt(maxAmt);
setmodVo.setOpnamt(maxAmt);
SetglgVo setglg = setmodVo.getSetglg();
// setmodVo.getSetglg().setglgClrAmount("TRN");
// setmodVo.getSetglg().setglgClrAmount("SET");
setglgService.setglgClrAmount(setglg, "TRN");
setglgService.setglgClrAmount(setglg, "SET");
String dsp = NULLSTR;
String dbtKey = NULLSTR;
String cdtKey = NULLSTR;
if (!MdaUtils.isEmpty(nom1Amt) && !MdaUtils.isEmpty(rec.getFxtyp())) {
if (MdaUtils.compareTo(Strings.mid(rec.getFxtyp(), 2, 1), "B") == 0) {
if (MdaUtils.compareTo(rec.getDsp(), "CA") == 0) {
dsp = "LOD";
} else {
dsp = rec.getDsp() + "D";
}
dbtKey = setglgService.setglgAddAmount(setglg, "TRN", "APL", setmodVo.getDoccur(), setmodVo.getDocamt(), "", dsp, "A", rec.getAcc(), "");
cdtKey = setglgService.setglgAddAmount(setglg, "SET", "APL", setmodVo.getDoccur(), setmodVo.getSetamt().negate(), "SET", rec.getDsp2() + "C", "F", rec.getAcc2(), "SET");
setglgService.setglgAddAmtFldAccCur(setglg,"SET", cdtKey, nom1Cur);
setglgService.setglgAddAmtFldExtRat(setglg,"SET", cdtKey, BigDecimal.ONE, rec.getRat());
setglgService.setSettlementDetails(setglg,"B", "APL", rec.getTrnman(), rec.getTrdint());
} else {
if (MdaUtils.compareTo(rec.getDsp(), "CA") == 0) {
dsp = "LOC";
} else {
dsp = rec.getDsp() + "C";
}
cdtKey = setglgService.setglgAddAmount(setglg,"TRN", "APL", setmodVo.getDoccur(), setmodVo.getSetamt().negate(), "", dsp, "A", rec.getAcc(), "");
dbtKey = setglgService.setglgAddAmount(setglg,"SET", "APL", setmodVo.getDoccur(), setmodVo.getSetamt(), "SET", rec.getDsp2() + "D", "F", rec.getAcc2(), "SET");
setglgService.setglgAddAmtFldAccCur(setglg,"SET", dbtKey, nom1Cur);
setglgService.setglgAddAmtFldExtRat(setglg,"SET", dbtKey, BigDecimal.ONE, rec.getRat());
setglgService.setSettlementDetails(setglg,"S", "APL", rec.getTrnman(), rec.getTrdout());
}
}
}
}
package com.brilliance.isc.funds.fxtssb.resource;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.transaction.controller.AbstractTransactionController;
import com.brilliance.isc.funds.fxtssb.service.FxtssbTransactionServiceImpl;
import com.brilliance.isc.funds.transfer.transaction.FxtssbStructMapper;
import com.brilliance.isc.funds.vo.funds.FxtssbStoreVo;
import com.brilliance.isc.transfer.IStructMapper;
import com.brilliance.isc.vo.ResponseSet;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @program: isc-funds
......@@ -30,4 +38,65 @@ public class FxtssbResource extends AbstractTransactionController<FxtssbStoreVo>
}
@Resource(name = "fxtssb.transaction")
FxtssbTransactionServiceImpl fxtssbTransactionService;
@Autowired
private SettleContext settleContext;
/**
* 根据结售汇类型 等获取业务参号
*
* @param fxtssbStoreVo
* @return
*/
@PostMapping("/getRef")
public ResponseSet<String> getRef(@RequestBody FxtssbStoreVo fxtssbStoreVo) {
String ref = fxtssbTransactionService.getRef(fxtssbStoreVo);
return ResponseSet.simpleSuccess(ref);
}
@PostMapping("/defaultAccountsN1000")
public ResponseSet defaultAccountsN1000(@RequestBody FxtssbStoreVo fxtssbStoreVo) {
try {
settleContext.loadSettleSession("FXTSSB","","");
Map<String, List<String>> codeSet = fxtssbTransactionService.defaultAccountsN1000(fxtssbStoreVo);
ResponseSet success = ResponseSet.simpleSuccess(fxtssbStoreVo);
success.setCodeSet(codeSet);
return success;
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultRateN1000")
public ResponseSet defaultRateN1000(@RequestBody FxtssbStoreVo fxtssbStoreVo) {
try {
settleContext.loadSettleSession("FXTSSB","","");
fxtssbTransactionService.defaultRateN1000(fxtssbStoreVo);
return ResponseSet.simpleSuccess(fxtssbStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultCalculateN1100")
public ResponseSet defaultCalculateN1100(@RequestBody FxtssbStoreVo fxtssbStoreVo) {
try {
settleContext.loadSettleSession("FXTSSB","","");
fxtssbTransactionService.defaultCalculateN1100(fxtssbStoreVo);
return ResponseSet.simpleSuccess(fxtssbStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
}
package com.brilliance.isc.funds.fxtsss.check;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.funds.bo.funds.FxtsssStoreBo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
......@@ -32,5 +36,81 @@ public class FxtsssValidator extends AbstractModuleValidator<FxtsssStoreBo> {
return maps;
}
/**
* source:fxtsss.0017.script
*/
@Validate(path = "fxdgrp.rec.trnman")
public ValidResult checkFxdgrpRecTrnmanN1000(FxtsssStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getTrnman())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0018.script
*/
@Validate(path = "fxdgrp.rec.trdint")
public ValidResult checkFxdgrpRecTrdintN1000(FxtsssStoreBo bo) {
if (MdaUtils.compareTo(Strings.mid(bo.getFxdgrp().getRec().getFxtyp(), 2, 1), "B") == 0 && MdaUtils.isEmpty(bo.getFxdgrp().getRec().getTrdint())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0019.script
*/
@Validate(path = "fxdgrp.rec.trdout")
public ValidResult checkFxdgrpRecTrdoutN1000(FxtsssStoreBo bo) {
if (MdaUtils.compareTo(Strings.mid(bo.getFxdgrp().getRec().getFxtyp(), 2, 1), "S") == 0 && MdaUtils.isEmpty(bo.getFxdgrp().getRec().getTrdout())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0020.script
*/
@Validate(path = "fxdgrp.rec.acc")
public ValidResult checkFxdgrpRecAccN1000(FxtsssStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getAcc())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0021.script
*/
@Validate(path = "fxdgrp.rec.acc2")
public ValidResult checkFxdgrpRecAcc2N1000(FxtsssStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getAcc2())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0027.script
*/
@Validate(path = "fxdgrp.rec.dsp")
public ValidResult checkFxdgrpRecDspN1000(FxtsssStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getDsp())) {
return errorMandatory();
}
return null;
}
/**
* source:fxtsss.0028.script
*/
@Validate(path = "fxdgrp.rec.dsp2")
public ValidResult checkFxdgrpRecDsp2N1000(FxtsssStoreBo bo) {
if (MdaUtils.isEmpty(bo.getFxdgrp().getRec().getDsp2())) {
return errorMandatory();
}
return null;
}
}
package com.brilliance.isc.funds.fxtsss.register.fee;
import com.brilliance.isc.common.register.fee.AbstractFeeRegister;
import com.brilliance.isc.common.register.fee.common.SetmodFeeRegister;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("fxtsss.feeRegister")
public class FxtsssFeeRegister extends AbstractFeeRegister {
@Autowired
private SetmodFeeRegister setmodFeeRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
setmodFeeRegister.registerSettlement(setmodVo);
}
private void transRegister(SetmodVo setmodVo) {
}
}
package com.brilliance.isc.funds.fxtsss.register.settle;
import com.brilliance.isc.common.register.settle.DefaultSettleRegister;
import com.brilliance.isc.common.register.settle.ISettleRegister;
import com.brilliance.isc.common.register.settle.common.DftcreSettleRegister;
import com.brilliance.isc.common.register.settle.common.TrtcreSettleRegister;
import com.brilliance.isc.common.setglg.service.SetglgService;
import com.brilliance.isc.common.setglg.vo.SetglgVo;
import com.brilliance.isc.common.setmod.service.SetmodService;
import com.brilliance.isc.common.setmod.vo.SetmodVo;
import com.brilliance.isc.vo.funds.FxdBizInfoVo;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import com.brilliance.mda.runtime.mda.util.Strings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
@Component("fxtsss.settleRegister")
public class FxtsssSettleRegister implements ISettleRegister {
@Autowired
private SetglgService setglgService;
@Autowired
private DefaultSettleRegister defaultSettleRegister;
@Override
public void registerSettlement(SetmodVo setmodVo) {
transRegister(setmodVo);
defaultSettleRegister.registerSettlement(setmodVo);
}
/**
* source:fxtsss.0010.script
*/
private void transRegister(SetmodVo setmodVo) {
FxdBizInfoVo rec = (FxdBizInfoVo) setmodVo.getRec();
BigDecimal maxAmt = BigDecimal.ZERO;
BigDecimal nom1Amt = BigDecimal.ZERO;
if (setmodVo.getCbsMap().get("MAX") != null) {
maxAmt = setmodVo.getCbsMap().get("MAX").getAmt();
}
String nom1Cur = NULLSTR;
if (setmodVo.getCbsMap().get("NOM1") != null) {
nom1Amt = setmodVo.getCbsMap().get("NOM1").getAmt();
nom1Cur = setmodVo.getCbsMap().get("NOM1").getCur();
}
setmodVo.setDocamt(maxAmt);
setmodVo.setOpnamt(maxAmt);
SetglgVo setglg = setmodVo.getSetglg();
setglgService.setglgClrAmount(setglg, "TRN");
setglgService.setglgClrAmount(setglg, "SET");
String dsp = NULLSTR;
String dbtKey = NULLSTR;
String cdtKey = NULLSTR;
if (!MdaUtils.isEmpty(nom1Amt) && !MdaUtils.isEmpty(rec.getFxtyp())) {
if (MdaUtils.compareTo(Strings.mid(rec.getFxtyp(), 2, 1), "B") == 0) {
if (MdaUtils.compareTo(rec.getDsp(), "CA") == 0) {
dsp = "LOD";
} else {
dsp = rec.getDsp() + "D";
}
dbtKey = setglgService.setglgAddAmount(setglg, "TRN", "APL", setmodVo.getDoccur(), setmodVo.getSetamt(), "", dsp, "A", rec.getAcc(), "");
cdtKey = setglgService.setglgAddAmount(setglg, "SET", "APL", setmodVo.getDoccur(), setmodVo.getSetamt().negate(), "SET", rec.getDsp2() + "C", "F", rec.getAcc2(), "SET");
setglgService.setglgAddAmtFldAccCur(setglg, "SET", cdtKey, nom1Cur);
setglgService.setglgAddAmtFldExtRat(setglg, "SET", cdtKey, BigDecimal.ONE, rec.getRat());
setglgService.setSettlementDetails(setglg, "B", "APL", rec.getTrnman(), rec.getTrdint());
} else {
if (MdaUtils.compareTo(rec.getDsp(), "CA") == 0) {
dsp = "LOC";
} else {
dsp = rec.getDsp() + "C";
}
cdtKey = setglgService.setglgAddAmount(setglg, "TRN", "APL", setmodVo.getDoccur(), setmodVo.getSetamt().negate(), "", dsp, "A", rec.getAcc(), "");
dbtKey = setglgService.setglgAddAmount(setglg, "SET", "APL", setmodVo.getDoccur(), setmodVo.getSetamt(), "SET", rec.getDsp2() + "D", "F", rec.getAcc2(), "SET");
setglgService.setglgAddAmtFldAccCur(setglg, "SET", dbtKey, nom1Cur);
setglgService.setglgAddAmtFldExtRat(setglg, "SET", dbtKey, BigDecimal.ONE, rec.getRat());
setglgService.setSettlementDetails(setglg, "S", "APL", rec.getTrnman(), rec.getTrdout());
}
}
}
}
package com.brilliance.isc.funds.fxtsss.resource;
import com.brilliance.isc.common.context.SettleContext;
import com.brilliance.isc.common.transaction.controller.AbstractTransactionController;
import com.brilliance.isc.funds.fxtsss.service.FxtsssTransactionServiceImpl;
import com.brilliance.isc.funds.transfer.transaction.FxtsssStructMapper;
import com.brilliance.isc.funds.vo.funds.FxtsssStoreVo;
import com.brilliance.isc.transfer.IStructMapper;
import com.brilliance.isc.vo.ResponseSet;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @program: isc-funds
......@@ -29,5 +37,65 @@ public class FxtsssResource extends AbstractTransactionController<FxtsssStoreVo>
return fxtsssStructMapper;
}
@Resource(name = "fxtsss.transaction")
FxtsssTransactionServiceImpl fxtsssTransactionService;
@Autowired
private SettleContext settleContext;
/**
* 根据结售汇类型 等获取业务参号
*
* @param fxtsssStoreVo
* @return
*/
@PostMapping("/getRef")
public ResponseSet<String> getRef(@RequestBody FxtsssStoreVo fxtsssStoreVo) {
String ref = fxtsssTransactionService.getRef(fxtsssStoreVo);
return ResponseSet.simpleSuccess(ref);
}
@PostMapping("/defaultAccountsN1000")
public ResponseSet defaultAccountsN1000(@RequestBody FxtsssStoreVo fxtsssStoreVo) {
try {
settleContext.loadSettleSession("FXTSSS", "", "");
Map<String, List<String>> codeSet = fxtsssTransactionService.defaultAccountsN1000(fxtsssStoreVo);
ResponseSet success = ResponseSet.simpleSuccess(fxtsssStoreVo);
success.setCodeSet(codeSet);
return success;
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultRateN1000")
public ResponseSet defaultRateN1000(@RequestBody FxtsssStoreVo fxtsssStoreVo) {
try {
settleContext.loadSettleSession("FXTSSS", "", "");
fxtsssTransactionService.defaultRateN1000(fxtsssStoreVo);
return ResponseSet.simpleSuccess(fxtsssStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
@PostMapping("/defaultCalculateN1100")
public ResponseSet defaultCalculateN1100(@RequestBody FxtsssStoreVo fxtsssStoreVo) {
try {
settleContext.loadSettleSession("FXTSSS", "", "");
fxtsssTransactionService.defaultCalculateN1100(fxtsssStoreVo);
return ResponseSet.simpleSuccess(fxtsssStoreVo);
} catch (Exception e) {
throw e;
} finally {
SettleContext.removeUserSession();
}
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.brilliance.isc.funds.mapper.FxdselMapper">
<resultMap id="BaseResultMap" type="com.brilliance.isc.funds.bo.Fxd">
<result property="inr" column="inr" jdbcType="VARCHAR"/>
<result property="ownref" column="ownref" jdbcType="VARCHAR"/>
<result property="nam" column="nam" jdbcType="VARCHAR"/>
<result property="opndat" column="opndat" jdbcType="DATE"/>
<result property="ownusr" column="ownusr" jdbcType="VARCHAR"/>
<result property="fxtyp" column="fxtyp" jdbcType="VARCHAR"/>
<result property="rat" column="rat" jdbcType="DECIMAL"/>
<result property="midrat" column="midrat" jdbcType="DECIMAL"/>
<result property="quoref" column="quoref" jdbcType="VARCHAR"/>
<result property="fudref" column="fudref" jdbcType="VARCHAR"/>
<result property="valdat" column="valdat" jdbcType="DATE"/>
<result property="cnfdat" column="cnfdat" jdbcType="DATE"/>
<result property="setdat" column="setdat" jdbcType="DATE"/>
<result property="setdatfrm" column="setdatfrm" jdbcType="DATE"/>
<result property="setdatto" column="setdatto" jdbcType="DATE"/>
<result property="clsdat" column="clsdat" jdbcType="DATE"/>
<result property="ver" column="ver" jdbcType="VARCHAR"/>
<result property="branchinr" column="branchinr" jdbcType="VARCHAR"/>
<result property="bchkeyinr" column="bchkeyinr" jdbcType="VARCHAR"/>
<result property="trdint" column="trdint" jdbcType="VARCHAR"/>
<result property="trdout" column="trdout" jdbcType="VARCHAR"/>
<result property="trnman" column="trnman" jdbcType="VARCHAR"/>
<result property="acc" column="acc" jdbcType="VARCHAR"/>
<result property="acc2" column="acc2" jdbcType="VARCHAR"/>
<result property="usr" column="usr" jdbcType="VARCHAR"/>
<result property="dsp" column="dsp" jdbcType="VARCHAR"/>
<result property="dsp2" column="dsp2" jdbcType="VARCHAR"/>
<result property="cshpct" column="cshpct" jdbcType="DECIMAL"/>
<result property="rat1" column="rat1" jdbcType="DECIMAL"/>
<result property="accmng" column="accmng" jdbcType="VARCHAR"/>
<result property="hdbch" column="hdbch" jdbcType="VARCHAR"/>
<result property="etyextkey" column="etyextkey" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
inr,ownref,nam,opndat,ownusr,fxtyp,rat,midrat,quoref,fudref,valdat,cnfdat,setdat,setdatfrm,setdatto,clsdat,ver,branchinr,bchkeyinr,trdint,trdout,trnman,acc,acc2,usr,dsp,dsp2,cshpct,rat1,accmng,hdbch,etyextkey
</sql>
<select id="query" resultMap="BaseResultMap">
select <include refid="Base_Column_List" />
from fxd where
<if test=" opndatfrom != null ">
fxd.OPNDAT>=#{opndatfrom,jdbcType=DATE}
</if>
<if test=" opndatto != null ">
AND fxd.OPNDAT&lt;=#{opndatto,jdbcType=DATE}
</if>
<if test=" seaownref != null and seaownref != ''">
AND fxd.OWNREF=#{ seaownref,jdbcType=VARCHAR}
</if>
<if test=" nam != null and nam != ''">
AND fxd.NAM=#{ nam,jdbcType=VARCHAR}
</if>
<if test=" ownusr != null and ownusr != ''">
AND fxd.OWNUSR=#{ ownusr,jdbcType=VARCHAR}
</if>
<if test=" usr != null and usr != ''">
AND fxd.USR=#{ usr,jdbcType=VARCHAR}
</if>
<if test=" accmng != null and accmng != ''">
AND fxd.accmng=#{ accmng,jdbcType=VARCHAR}
</if>
<if test=" fxtyp != null and fxtyp != ''">
AND fxd.FXTYP=#{ fxtyp,jdbcType=VARCHAR}
</if>
<if test=" acc != null and acc != ''">
AND fxd.acc=#{ acc,jdbcType=VARCHAR}
</if>
<if test=" acc2 != null and acc2 != ''">
AND fxd.acc2=#{ acc2,jdbcType=VARCHAR}
</if>
<!-- <if test=" chnipt != null and chnipt != ''">-->
<!-- <choose>-->
<!-- <when test=" chnipt == 'BLK'">-->
<!-- AND M1.nxtchncod=-->
<!-- </when>-->
<!-- <when test=" chnipt == 'wu'">-->
<!-- AND M1.tgtchncod IS NULL-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- AND M1.tgtchncod=-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- </if>-->
<!-- <if test=" msgtyp != null and msgtyp != ''">-->
<!-- AND M2.msgtyp=#{ msgtyp,jdbcType=VARCHAR}-->
<!-- </if>-->
<!-- <if test=" subtyp != null and subtyp != ''">-->
<!-- AND M2.subtyp=#{ subtyp,jdbcType=VARCHAR}-->
<!-- </if>-->
<!-- <if test=" gpi != null and gpi != ''">-->
<!-- AND M2.gpi=#{ gpi,jdbcType=VARCHAR}-->
<!-- </if>-->
<!-- <if test=" sndbak != null and sndbak != ''">-->
<!-- AND M2.sndbic like '%' || #{sndbak,jdbcType=VARCHAR} || '%'-->
<!-- </if>-->
<!-- <if test=" revbak != null and revbak != ''">-->
<!-- AND M2.rcvbic like '%' || #{revbak,jdbcType=VARCHAR} || '%'-->
<!-- </if>-->
<!-- <if test=" othref != null and othref != ''">-->
<!-- AND M2.othref like '%' || #{othref,jdbcType=VARCHAR} || ''-->
<!-- </if>-->
<!-- <if test=" ownref != null and ownref != ''">-->
<!-- AND M2.ownref like '%' || #{ ownref,jdbcType=VARCHAR} || '%'-->
<!-- </if>-->
<!-- <if test=" act != null and act != ''">-->
<!-- AND M2.act like '%' || #{ act,jdbcType=VARCHAR} || '%'-->
<!-- </if>-->
<!-- <if test=" cur != null and cur != ''">-->
<!-- AND M2.cur=#{ cur,jdbcType=VARCHAR}-->
<!-- </if>-->
<!-- <if test=" dtlchg != null and dtlchg != ''">-->
<!-- AND M2.dtlchg=#{ dtlchg,jdbcType=VARCHAR}-->
<!-- </if>-->
<!-- <if test=" amtmin != null and amtmin != ''">-->
<!-- AND M2.amt &gt;= #{ amtmin,jdbcType=DECIMAL}-->
<!-- </if>-->
<!-- <if test=" amtmax != null and amtmax != ''">-->
<!-- AND M2.amt &lt;= #{ amtmax,jdbcType=DECIMAL}-->
<!-- </if>-->
<!-- <if test=" actbic != null and actbic != ''">-->
<!-- AND (M2.actbic like '%' || #{ actbic,jdbcType=VARCHAR} || '%'-->
<!-- or M2.t53bic LIKE '%' || #{ actbic,jdbcType=VARCHAR} || '%')-->
<!-- </if>-->
<!-- <if test=" sta != null and sta != ''">-->
<!-- AND M1.sta=#{ sta,jdbcType=VARCHAR}-->
<!-- </if>-->
</select>
</mapper>
\ No newline at end of file
package com.brilliance.isc.funds.bo;
import com.brilliance.mda.runtime.mda.util.Decimals;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
import static com.brilliance.mda.runtime.mda.Constants.NULLDATE;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;
/**
* TABLE:fxd:
*
*
* 1、 Reference:这笔结售汇业务的编号。在选择了售汇币种后可以通过Get Ref获取,或者在交易存盘时系统自动获取。
* 2、Name:这笔结售汇业务的简要说明,系统根据交易要素自动赋值。
* 3、Responsible User:这笔结汇业务的经办人,默认为登陆柜员,也可以通过点击“i”按钮更改成其他经办人。
* 4 、Exchange Type:这笔结售汇业务的类型,本期默认为即期售汇。
* 5、Purchase Amount:这笔结售汇业务的售汇币种及金额,根据业务实际情况输入,必输项。
* 6、Domestic Amount:这笔结售汇业务的本币币种及金额,币种默认为人民币CNY,不可更改,金额由系统根据交易要素自动计算得出。
* 7、Applicant:这笔结售汇业务的申请人,根据业务实际情况输入,必输项。
* 8、Exchange Rate:这笔结售汇业务所使用的牌价,如果不需要资金部报价,则自动根据申请人的汇率优惠情况在原结售汇牌价基础上计算得出。
* 9、Middle Rate:这笔结售汇业务所涉及的中间价,如果不需要资金部报价,则自动带出结汇币种的中间价。
* 10、钞汇标志:这笔结售汇业务的钞汇标志,选项为现汇和现钞,默认为现汇,根据业务实际情况输入。
* 11、Quote Ref.:本交易不适用。
* 12、Treasury Dept. Ref.:本交易不适用。
* 13、Open Date:这笔结售汇业务的成交日期,系统默认为当前日期,可以根据业务实际情况修改。
* 14、Value Date:这笔结售汇业务的起息日,系统默认为成交日,可以根据业务实际情况修改。
* 15、Settlement Date:本期不适用。
* 16、Begin Date of Settle:本期不适用。
* 17、Expiry Date of Settle:本期不适用。
* 18、Foreign Cur. Account:这笔结售汇业务的外币的记账账号类型与记账账号,有LO客户往来账户、VT客户待核查账户、HA内部往来清算账户以及SP国际结算过渡账户4个选项,系统会根据账号类型自动带出相关账号,也可根据业务实际情况输入,必输项。
* 19、Domestic Cur. Account:这笔结售汇业务的本币的记账账号类型与记账账号,有LO客户往来账户,HA内部往来清算账户以及SP国际结算过渡账户3个选项,系统会根据账号类型自动带出相关账号,也可根据业务实际情况输入,必输项。
* 20、Exchange Party Type:这笔结售汇业务的申请人的主体类型,系统会根据静态数据的信息自动默认,也可根据业务实际情况输入,必输项。
* 21、Exchange Title:这笔结售汇业务的类型,根据业务实际情况输入,必输项。
* 22、Remark:这笔结售汇业务的备注信息。
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@Getter
@Setter
public class Fxd {
//Internal Unique ID of Import L/C
//@TDSetter(max=8)
private String inr = NULLSTR;
//Reference
//@TDSetter(max=16)
private String ownref = NULLSTR;
//Externally Displayed Name to Identify the Contract
//@TDSetter(max=40)
private String nam = NULLSTR;
//Date Foreign Exchange Opened/Issued
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date opndat = NULLDATE;
//Responsible User
// @TDSetter(max=8)
private String ownusr = NULLSTR;
//Foreign Exchange Type
// @TDSetter(max=2)
private String fxtyp = NULLSTR;
//Rate
// @TDSetter(scale=6)
private BigDecimal rat = Decimals.ZERO_SCALE6;
//Middle Rate
// @TDSetter(scale=6)
private BigDecimal midrat = Decimals.ZERO_SCALE6;
//Quote Reference
// @TDSetter(max=16)
private String quoref = NULLSTR;
//Fund Department Reference
// @TDSetter(max=16)
private String fudref = NULLSTR;
//Value date
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date valdat = NULLDATE;
//Date of confirmation
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date cnfdat = NULLDATE;
//Settlement Date
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date setdat = NULLDATE;
//Settlemt date from
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date setdatfrm = NULLDATE;
//Settlement date to
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
// @TDSetter
private Date setdatto = NULLDATE;
//Date of Closed
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
//@TDSetter
private Date clsdat = NULLDATE;
//Version
// @TDSetter(max=4)
private String ver = NULLSTR;
//Branch INR
// @TDSetter(max=8)
private String branchinr = NULLSTR;
//Branch INR
// @TDSetter(max=8)
private String bchkeyinr = NULLSTR;
//TRADE IN
// @TDSetter(max=3)
private String trdint = NULLSTR;
//TRADE OUT
// @TDSetter(max=3)
private String trdout = NULLSTR;
//交易主体
// @TDSetter(max=2)
private String trnman = NULLSTR;
//Foreign Account
// @TDSetter(max=21)
private String acc = NULLSTR;
//CNY Account
// @TDSetter(max=21)
private String acc2 = NULLSTR;
//Clearing Department Responsible User
//@TDSetter(max=8)
private String usr = NULLSTR;
//Disposition
// @TDSetter(max=2)
private String dsp = NULLSTR;
//Disposition
// @TDSetter(max=2)
private String dsp2 = NULLSTR;
//Cash cover percent
// @TDSetter(scale=2)
private BigDecimal cshpct = Decimals.ZERO_SCALE2;
//Rate
//@TDSetter(scale=6)
private BigDecimal rat1 = Decimals.ZERO_SCALE6;
//Account manager
// @TDSetter(max=8)
private String accmng = NULLSTR;
//客户经理部门
// @TDSetter(max=8)
private String hdbch = NULLSTR;
//Entity KEY of Entry
//@TDSetter(max=8)
private String etyextkey = NULLSTR;
}
\ No newline at end of file
package com.brilliance.isc.funds.bo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.bo.model.Mt30m;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.brilliance.isc.common.vo.PtsptaVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
/**
* @program: isc-funds
* @ClassName: FxtfcmStoreBo
* @description: 结售汇平盘确认bo
* @author: xiaotong
* @create: 2024-10-11 11:42
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtfcmStoreBo extends BaseTransactionVo {
//APLACC's Account
private String acc2= null;
//OWNACC's Account
private String acc1= null;
//发送MT300
private String swtflg= null;
//XMLPanel fxt300l1的内置block
private String fxt300l1blk= null;
private Fxdgrp fxdgrp;
//private Fxtmod fxtmod;
private Fxtp fxtp;
private Mt30m mt30m;
private PtsptaVo aplacc;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.bo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
/**
* @program: isc-funds
* @ClassName: FxtsssStoreBo
* @description: 即期结汇bo
* @author: huangshunlin
* @create: 2024-10-08 15:51
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtfopStoreBo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.bo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,23 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtlopStoreBo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
//private Fxtmod fxtmod;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.bo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,22 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtssbStoreBo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.bo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,20 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtsssStoreBo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.brilliance.isc.funds.bo.Fxd;
import com.brilliance.isc.funds.vo.FxdVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface FxdselMapper extends BaseMapper<Fxd> {
List<Fxd> query(FxdVo vo);
//String findInrByRcvbic(String cod);
}
package com.brilliance.isc.funds.transfer.transaction;
import com.brilliance.isc.funds.bo.funds.FxtfcmStoreBo;
import com.brilliance.isc.funds.bo.funds.FxtlopStoreBo;
import com.brilliance.isc.funds.vo.funds.FxtfcmStoreVo;
import com.brilliance.isc.funds.vo.funds.FxtlopStoreVo;
import com.brilliance.isc.transfer.IBaseStructMapper;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
/**
* @program: isc-funds
* @ClassName: FxtfcmStructMapper
* @description:
* @author: xiaotong
* @create: 2024-10-11 17:17
*/
@Mapper(componentModel = "spring")
public interface FxtfcmStructMapper extends IBaseStructMapper<FxtfcmStoreBo, FxtfcmStoreVo> {
/**
* 此行语句一定要写,StructMapper需要
*/
FxtfcmStructMapper INSTANCE = Mappers.getMapper(FxtfcmStructMapper.class);
/**
* Vo转为Bo
*
* @param vo
* @return 返回业务Bo
*/
@Override
FxtfcmStoreBo voTransferToBo(FxtfcmStoreVo vo);
/**
* Vo追加更新至Bo
*
* @param vo
* @param bo
*/
@Override
@Mappings({
})
void voUpdateToBo(FxtfcmStoreVo vo, @MappingTarget FxtfcmStoreBo bo);
/**
* Bo转为Vo
*
* @param bo
* @return 返回Vo
*/
@Override
FxtfcmStoreVo boTransferToVo(FxtfcmStoreBo bo);
/**
* bo追加更新至Bo
*
* @param bo
* @param vo
*/
@Override
void boUpdateToVo(FxtfcmStoreBo bo, @MappingTarget FxtfcmStoreVo vo);
}
package com.brilliance.isc.funds.transfer.transaction;
import com.brilliance.isc.funds.bo.funds.FxtfopStoreBo;
import com.brilliance.isc.funds.vo.funds.FxtfopStoreVo;
import com.brilliance.isc.transfer.IBaseStructMapper;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
/**
* @program: isc-funds
* @ClassName: FxtssbStructMapper
* @description: 即期结汇转换Fxtssb Bo、Vo之间的转换处理类。如果有很复杂的函数,则可以用适配器模式重写
* @author: huangshunlin
* @create: 2024-10-08 15:27
*/
@Mapper(componentModel = "spring")
public interface FxtfopStructMapper extends IBaseStructMapper<FxtfopStoreBo, FxtfopStoreVo> {
/**
* 此行语句一定要写,StructMapper需要
*/
FxtfopStructMapper INSTANCE = Mappers.getMapper(FxtfopStructMapper.class);
/**
* Vo转为Bo
*
* @param vo
* @return 返回业务Bo
*/
@Override
FxtfopStoreBo voTransferToBo(FxtfopStoreVo vo);
/**
* Vo追加更新至Bo
*
* @param vo
* @param bo
*/
@Override
@Mappings({
})
void voUpdateToBo(FxtfopStoreVo vo, @MappingTarget FxtfopStoreBo bo);
/**
* Bo转为Vo
*
* @param bo
* @return 返回Vo
*/
@Override
FxtfopStoreVo boTransferToVo(FxtfopStoreBo bo);
/**
* bo追加更新至Bo
*
* @param bo
* @param vo
*/
@Override
void boUpdateToVo(FxtfopStoreBo bo, @MappingTarget FxtfopStoreVo vo);
}
......@@ -5,7 +5,6 @@ import com.brilliance.isc.funds.vo.funds.FxtssbStoreVo;
import com.brilliance.isc.transfer.IBaseStructMapper;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
/**
......@@ -38,9 +37,6 @@ public interface FxtssbStructMapper extends IBaseStructMapper<FxtssbStoreBo, Fxt
* @param bo
*/
@Override
@Mappings({
})
void voUpdateToBo(FxtssbStoreVo vo, @MappingTarget FxtssbStoreBo bo);
/**
......
package com.brilliance.isc.funds.vo;
import com.brilliance.isc.common.vo.PageVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @description:
* @author: hulei
* @create: 2024-09-25 15:10
**/
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxdVo extends PageVo {
/**
* 业务编号
*/
private String seaownref;
/**
* 业务名称
*/
private String nam;
/**
* 汇款开始日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date opndatfrom;
/**
* 汇款截止日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date opndatto;
/**
* //币种
*/
// private String seacur;
// /**
// * //金额从
// */
// private BigDecimal seaamtfr;
// /**
// * //金额到
// */
// private BigDecimal seaamtto;
/**
*参与方参考号
*/
// private String searef;
/**
* 参与方名称
* */
// private String seapty;
// /**
// * 角色 User
// * */
// private String searol;
// /**
// * user ID
// * */
//
// private String usrextkey;
/**
*状态
* */
private String seasta;
/**
* 结售汇类型
* */
private String fxtyp;
/**
* 客户名称
* */
private String ownusr;
/***
* 账户经理
* */
private String accmng;
/**
* 资金部经办人
* */
private String usr;
/***
* 外币和本币结算账户
* */
private String acc;
private String acc2;
}
package com.brilliance.isc.funds.vo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
/**
* @program: isc-funds
* @ClassName: FxtfcmStoreVo
* @description: 结售汇平盘确认bo
* @author: xiaotong
* @create: 2024-10-11 11:42
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtfcmStoreVo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
//private Fxtmod fxtmod;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.vo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
/**
* @program: isc-funds
* @ClassName: FxtssbStoreVo
* @description: 即期结汇bo
* @author: huangshunlin
* @create: 2024-10-08 15:26
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtfopStoreVo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.vo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,24 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtlopStoreVo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
//private Fxtmod fxtmod;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.vo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,22 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtssbStoreVo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
package com.brilliance.isc.funds.vo.funds;
import com.brilliance.isc.bo.model.Fxdgrp;
import com.brilliance.isc.bo.model.Fxtp;
import com.brilliance.isc.common.transaction.vo.BaseTransactionVo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
......@@ -14,4 +16,21 @@ import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FxtsssStoreVo extends BaseTransactionVo {
private Fxdgrp fxdgrp;
private Fxtp fxtp;
@Override
public void reset() {
super.reset();
if (fxdgrp == null) {
fxdgrp = new Fxdgrp();
}
fxdgrp.reset();
if (fxtp == null) {
fxtp = new Fxtp();
}
fxtp.reset();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment