Forráskód Böngészése

新增银行业务接口

xie.kaifeng 6 hónapja
szülő
commit
3d65621a01
35 módosított fájl, 1520 hozzáadás és 1 törlés
  1. 140 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/BankBusinessController.java
  2. 1 1
      mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/CommonController.java
  3. 41 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IBankBusinessService.java
  4. 454 0
      mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/BankBusinessServiceImpl.java
  5. 31 0
      mtp3-century/src/main/resources/mapper/BankCusbankextendconfigMapper.xml
  6. 32 0
      mtp3-century/src/main/resources/mapper/BankCusbanksignbankMapper.xml
  7. 10 0
      mtp3-century/src/main/resources/mapper/EnumdicitemMapper.xml
  8. 3 0
      mtp3-century/src/main/resources/message_en.properties
  9. 3 0
      mtp3-century/src/main/resources/message_th.properties
  10. 3 0
      mtp3-century/src/main/resources/message_vi.properties
  11. 3 0
      mtp3-century/src/main/resources/message_zh-cn.properties
  12. 3 0
      mtp3-century/src/main/resources/message_zh-hk.properties
  13. 3 0
      mtp3-century/src/main/resources/message_zh-tw.properties
  14. 3 0
      mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java
  15. 16 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankchargeMapper.java
  16. 17 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankchargedetailMapper.java
  17. 20 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankextendconfigMapper.java
  18. 23 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbanksignbankMapper.java
  19. 16 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankstatusMapper.java
  20. 16 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankExtendfieldMapper.java
  21. 2 0
      mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IEnumdicitemMapper.java
  22. 72 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankcharge.java
  23. 74 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankchargedetail.java
  24. 58 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankextendconfig.java
  25. 36 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankinfo.java
  26. 48 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbanksignbank.java
  27. 80 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankstatus.java
  28. 67 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankExtendfield.java
  29. 92 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusBankInfoParam.java
  30. 19 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusBankSignAddParam.java
  31. 31 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusbankinfoDetailResult.java
  32. 22 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankExtendAddParam.java
  33. 23 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankExtendBizTypeResult.java
  34. 20 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankSystemConfigParam.java
  35. 38 0
      mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryResult.java

+ 140 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/BankBusinessController.java

@@ -0,0 +1,140 @@
+package com.muchinfo.mtp3century.controller;
+
+import com.muchinfo.mtp3century.service.IBankBusinessService;
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3common.vo.PageResult;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.bankbusiness.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/bankBusiness")
+@Api(value = "银行业务API", description = "银行业务管理")
+public class BankBusinessController {
+    private final Logger log = LoggerFactory.getLogger(this.getClass());
+    @Resource
+    private IBankBusinessService iBankBusinessService;
+
+    @ApiOperation("银行业务->银行系统配置-->详情")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/banksystemconfig")
+    public AjaxResult<BankSystemconfig> banksystemconfig(HttpServletRequest request) {
+        return iBankBusinessService.banksystemconfig(request);
+    }
+
+    @ApiOperation("银行业务->银行系统配置-->编辑")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.POST, value = "/saveSystemDetail")
+    public AjaxResult saveSystemDetail(@RequestBody BankSystemConfigParam param, HttpServletRequest request) {
+        return iBankBusinessService.saveSystemDetail(param, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/bankcusquery")
+    public AjaxResult<BankCusbankinfo> bankcusquery(HttpServletRequest request) {
+        return iBankBusinessService.bankcusquery(request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->详情")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/bankcusdetail")
+    public AjaxResult<BankCusbankinfoDetailResult> bankcusdetail(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.bankcusdetail(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->获取平台开户银行")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/queryBankInfoSelect")
+    public AjaxResult<BankBankinfo> queryBankInfoSelect(String searchcode, HttpServletRequest request) {
+        return iBankBusinessService.queryBankInfoSelect(searchcode, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->新增/修改")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.POST, value = "/dealBankInfo")
+    public AjaxResult dealBankInfo(@RequestBody BankCusBankInfoParam param, HttpServletRequest request) {
+        return iBankBusinessService.dealBankInfo(param, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->删除")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/deleteBankInfo")
+    public AjaxResult deleteBankInfo(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.deleteBankInfo(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->扩展配置-->获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/queryExtendset")
+    public AjaxResult<BankCusbankextendconfig> queryExtendset(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.queryExtendset(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->扩展配置-->新增、修改初始化信息")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/extendBizTypeInit")
+    public AjaxResult<BankExtendBizTypeResult> extendBizTypeInit(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.extendBizTypeInit(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->扩展配置-->详情")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/extendDetail")
+    public AjaxResult<BankCusbankextendconfig> extendDetail(String cusbankid, Integer extendbiztype, HttpServletRequest request) {
+        return iBankBusinessService.extendDetail(cusbankid, extendbiztype, request);
+    }
+
+    @ApiOperation("银行业务-托管银行配置-->扩展配置-->新增/修改")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.POST, value = "/dealBankExtend")
+    public AjaxResult dealBankExtend(@RequestBody BankExtendAddParam param, HttpServletRequest request) {
+        return iBankBusinessService.dealBankExtend(param, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->扩展配置-->删除")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/delExtend")
+    public AjaxResult delExtend(String cusbankid, Integer extendbiztype, HttpServletRequest request) {
+        return iBankBusinessService.delExtend(cusbankid, extendbiztype, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->支持银行-->获取列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/queryBankSignList")
+    public AjaxResult<BankCusbanksignbank> queryBankSignList(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.queryBankSignList(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->支持银行-->获取排除银行列表")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/queryBankInfoNotExist")
+    public AjaxResult<BankBankinfo> queryBankInfoNotExist(String cusbankid, HttpServletRequest request) {
+        return iBankBusinessService.queryBankInfoNotExist(cusbankid, request);
+    }
+
+    @ApiOperation("银行业务->托管银行配置-->扩展配置-->删除")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.GET, value = "/delBankInfo")
+    public AjaxResult delBankInfo(String cusbankid, Integer bankid, HttpServletRequest request) {
+        return iBankBusinessService.delBankInfo(cusbankid, bankid, request);
+    }
+
+    @ApiOperation("银行业务-托管银行配置-->扩展配置-->新增")
+    @ApiResponse(code = 200, message = "成功", response = PageResult.class)
+    @RequestMapping(method = RequestMethod.POST, value = "/dealBankCusBankSign")
+    public AjaxResult dealBankCusBankSign(@RequestBody BankCusBankSignAddParam param, HttpServletRequest request) {
+        return iBankBusinessService.dealBankCusBankSign(param, request);
+    }
+}

+ 1 - 1
mtp3-century/src/main/java/com/muchinfo/mtp3century/controller/CommonController.java

@@ -45,7 +45,7 @@ import java.util.stream.Collectors;
  */
 
 @RestController
-    @RequestMapping("/common")
+@RequestMapping("/common")
 @Api(value = "公共API", description = "公共方法调用")
 public class CommonController {
 

+ 41 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/IBankBusinessService.java

@@ -0,0 +1,41 @@
+package com.muchinfo.mtp3century.service;
+
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.bankbusiness.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface IBankBusinessService {
+    AjaxResult<BankSystemconfig> banksystemconfig(HttpServletRequest request);
+
+    AjaxResult saveSystemDetail(BankSystemConfigParam param, HttpServletRequest request);
+
+    AjaxResult<BankCusbankinfo> bankcusquery(HttpServletRequest request);
+
+    AjaxResult<BankCusbankinfoDetailResult> bankcusdetail(String cusbankid, HttpServletRequest request);
+
+    AjaxResult<BankBankinfo> queryBankInfoSelect(String searchcode, HttpServletRequest request);
+
+    AjaxResult dealBankInfo(BankCusBankInfoParam param, HttpServletRequest request);
+
+    AjaxResult deleteBankInfo(String cusbankid, HttpServletRequest request);
+
+    AjaxResult<BankCusbankextendconfig> queryExtendset(String cusbankid, HttpServletRequest request);
+
+    AjaxResult<BankExtendBizTypeResult> extendBizTypeInit(String cusbankid, HttpServletRequest request);
+
+    AjaxResult<BankCusbankextendconfig> extendDetail(String cusbankid, Integer extendbiztype, HttpServletRequest request);
+
+    AjaxResult dealBankExtend(BankExtendAddParam param, HttpServletRequest request);
+
+    AjaxResult delExtend(String cusbankid, Integer extendbiztype, HttpServletRequest request);
+
+    AjaxResult<BankCusbanksignbank> queryBankSignList(String cusbankid, HttpServletRequest request);
+
+    AjaxResult<BankBankinfo> queryBankInfoNotExist(String cusbankid, HttpServletRequest request);
+
+    AjaxResult delBankInfo(String cusbankid, Integer bankid, HttpServletRequest request);
+
+    AjaxResult dealBankCusBankSign(BankCusBankSignAddParam param, HttpServletRequest request);
+}

+ 454 - 0
mtp3-century/src/main/java/com/muchinfo/mtp3century/service/impl/BankBusinessServiceImpl.java

@@ -0,0 +1,454 @@
+package com.muchinfo.mtp3century.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.muchinfo.mtp3century.exception.GlobalException;
+import com.muchinfo.mtp3century.service.IBankBusinessService;
+import com.muchinfo.mtp3century.service.ICommonService;
+import com.muchinfo.mtp3century.utils.AjaxResult;
+import com.muchinfo.mtp3common.enumtype.Constants;
+import com.muchinfo.mtp3common.enumtype.MessageType;
+import com.muchinfo.mtp3common.enumtype.SysConstants;
+import com.muchinfo.mtp3common.utils.DateTimeUtils;
+import com.muchinfo.mtp3interface.mapper.*;
+import com.muchinfo.mtp3pojos.entity.*;
+import com.muchinfo.mtp3pojos.vo.bankbusiness.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class BankBusinessServiceImpl implements IBankBusinessService {
+
+    @Resource
+    private IBankSystemconfigMapper iBankSystemconfigMapper;
+    @Resource
+    private ICommonService iCommonService;
+    @Resource
+    private ISystemmanagerMapper iSystemmanagerMapper;
+    @Resource
+    private ISystemmanagerlogMapper iSystemmanagerlogMapper;
+    @Resource
+    private IBankCusbankinfoMapper iBankCusbankinfoMapper;
+    @Resource
+    private IBankCusbankchargeMapper iBankCusbankchargeMapper;
+    @Resource
+    private IBankCusbankchargedetailMapper iBankCusbankchargedetailMapper;
+    @Resource
+    private IBankBankinfoMapper iBankBankinfoMapper;
+    @Resource
+    private IBankAccountsignMapper iBankAccountsignMapper;
+    @Resource
+    private IBankCusbanksignbankMapper iBankCusbanksignbankMapper;
+    @Resource
+    private IBankCusbankstatusMapper iBankCusbankstatusMapper;
+    @Resource
+    private IBankCusbankextendconfigMapper iBankCusbankextendconfigMapper;
+    @Resource
+    private IBankExtendfieldMapper iBankExtendfieldMapper;
+    @Resource
+    private IEnumdicitemMapper iEnumdicitemMapper;
+
+
+    @Override
+    public AjaxResult<BankSystemconfig> banksystemconfig(HttpServletRequest request) {
+        List<BankSystemconfig> bankSystemconfigs = iBankSystemconfigMapper.selectList(new QueryWrapper<>());
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), bankSystemconfigs);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult saveSystemDetail(BankSystemConfigParam param, HttpServletRequest request) {
+        Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        Systemmanagerlog log = new Systemmanagerlog();
+        BankSystemconfig bConfig = null;
+        StringBuilder builder = new StringBuilder("{");
+        for (BankSystemconfig bankSystem : param.getBankSystemConfigs()) {
+            bConfig = iBankSystemconfigMapper.selectOne(new QueryWrapper<BankSystemconfig>().eq("CONFIGID", bankSystem.getConfigid()));
+            if (bConfig == null) {
+                throw new GlobalException(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM029.getCode(), request.getHeader("Accept-Language"));
+            }
+            bConfig.setConfigvalue(bankSystem.getConfigvalue());
+            iBankSystemconfigMapper.update(bConfig, new QueryWrapper<BankSystemconfig>().eq("CONFIGID", bankSystem.getConfigid()));
+            builder.append("\"" + bConfig.getRemark() + "\":\"" + bankSystem.getConfigvalue() + "\"");
+            builder.append(",");
+        }
+        log.setUserid(user.getAutoid());
+        log.setReletype(user.getReletype());
+        log.setLogincode(user.getLogincode());
+        log.setUsername(user.getUsername());
+        log.setParentuserid(user.getAreauserid());
+        log.setOperatetime(new Date());
+        log.setIp(user.getLoginip());
+        log.setResourcecode(SysConstants.BANK_SYSTEMCONFIG);
+        log.setNewvalue(builder.toString().substring(0, builder.toString().length() - 1) + "}");
+        log.setContent("修改银行系统配置{\"marketId\":" + bConfig.getConfigid() + "}成功");
+        log.setOldvalue("{\"marketId\":" + bConfig.getConfigid() + "}");
+        log.setRemark("[{\"bankSystemConfigs\":" + bConfig.getConfigid() + "," + bConfig.getConfigcode() + "}]");
+        log.setResourcename("银行系统配置");
+
+        iSystemmanagerlogMapper.insert(log);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult<BankCusbankinfo> bankcusquery(HttpServletRequest request) {
+        List<BankCusbankinfo> bankCusbankinfos = iBankCusbankinfoMapper.selectList(new QueryWrapper<>());
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), bankCusbankinfos);
+    }
+
+    @Override
+    public AjaxResult<BankCusbankinfoDetailResult> bankcusdetail(String cusbankid, HttpServletRequest request) {
+        BankCusbankinfoDetailResult result = new BankCusbankinfoDetailResult();
+        BankCusbankinfo bankCusbankinfo = iBankCusbankinfoMapper.selectOne(new QueryWrapper<BankCusbankinfo>().eq("cusbankid", cusbankid));
+        result.setBankCusbankinfo(bankCusbankinfo);
+
+        List<BankCusbankcharge> charges = iBankCusbankchargeMapper.selectList(new QueryWrapper<BankCusbankcharge>().eq("cusbankid", cusbankid));
+        if (!charges.isEmpty()) {
+            for (BankCusbankcharge charge : charges) {
+                if (null != charge.getChargealgorithm() && charge.getChargealgorithm() == 1) { //手续费收取方式 - 1:比率  2:固定  [统一 ]
+                    charge.setChargevalue(charge.getChargevalue().multiply(new BigDecimal("100")).setScale(4, BigDecimal.ROUND_DOWN).stripTrailingZeros());
+                }
+                List<BankCusbankchargedetail> chargedetails;
+                //这里分别查一下,页面出来起来清晰
+                if (charge.getOutorin() == 2) {//1.入金手续费
+                    if (charge.getUsertype() == 2) { //1.1 对公
+                        result.setCharge(charge);
+                        result.setIscheckin(1);
+                        if (charge.getChargetype() == 2) {
+                            chargedetails = iBankCusbankchargedetailMapper.selectList(new QueryWrapper<BankCusbankchargedetail>()
+                                    .eq("outorin", 2)
+                                    .eq("usertype", 2));
+                            for (BankCusbankchargedetail chargeDetail : chargedetails) {
+                                if (null != chargeDetail.getChargealgorithm() && chargeDetail.getChargealgorithm() == 1) {
+                                    chargeDetail.setChargevalue(chargeDetail.getChargevalue().multiply(new BigDecimal("100")).setScale(4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros());
+                                }
+                            }
+                            result.setRange(chargedetails);
+                        }
+                    } else { //1.2 对私
+                        result.setCharge(charge);
+                        result.setIscheckin(1);
+                        if (charge.getChargetype() == 2) {
+                            chargedetails = iBankCusbankchargedetailMapper.selectList(new QueryWrapper<BankCusbankchargedetail>()
+                                    .eq("outorin", 2)
+                                    .eq("usertype", 1));
+                            for (BankCusbankchargedetail chargeDetail : chargedetails) {
+                                if (null != chargeDetail.getChargealgorithm() && chargeDetail.getChargealgorithm() == 1) {
+                                    chargeDetail.setChargevalue(chargeDetail.getChargevalue().multiply(new BigDecimal("100")).setScale(4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros());
+                                }
+                            }
+                            result.setRange(chargedetails);
+                        }
+                    }
+                } else {//2.出金手续费
+                    if (charge.getUsertype() == 2) { //2.1 对公
+                        result.setCharge(charge);
+                        result.setIscheckout(1);
+                        if (charge.getChargetype() == 2) {
+                            chargedetails = iBankCusbankchargedetailMapper.selectList(new QueryWrapper<BankCusbankchargedetail>()
+                                    .eq("outorin", 1)
+                                    .eq("usertype", 2));
+                            for (BankCusbankchargedetail chargeDetail : chargedetails) {
+                                if (null != chargeDetail.getChargealgorithm() && chargeDetail.getChargealgorithm() == 1) {
+                                    chargeDetail.setChargevalue(chargeDetail.getChargevalue().multiply(new BigDecimal("100")).setScale(4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros());
+                                }
+                            }
+                            result.setRange(chargedetails);
+                        }
+                    } else { //2.2 对私
+                        result.setCharge(charge);
+                        result.setIscheckout(1);
+                        if (charge.getChargetype() == 2) {
+                            chargedetails = iBankCusbankchargedetailMapper.selectList(new QueryWrapper<BankCusbankchargedetail>()
+                                    .eq("outorin", 1)
+                                    .eq("usertype", 1));
+                            for (BankCusbankchargedetail chargeDetail : chargedetails) {
+                                if (null != chargeDetail.getChargealgorithm() && chargeDetail.getChargealgorithm() == 1) {
+                                    chargeDetail.setChargevalue(chargeDetail.getChargevalue().multiply(new BigDecimal("100")).setScale(4, BigDecimal.ROUND_HALF_UP).stripTrailingZeros());
+                                }
+                            }
+                            result.setRange(chargedetails);
+                        }
+                    }
+                }
+            }
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+    }
+
+    @Override
+    public AjaxResult<BankBankinfo> queryBankInfoSelect(String searchcode, HttpServletRequest request) {
+        List<BankBankinfo> bankBankinfos = iBankBankinfoMapper.selectList(new QueryWrapper<BankBankinfo>()
+                .like("bankname", searchcode)
+                .last("rownum &lt;= 10"));
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), bankBankinfos);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult dealBankInfo(BankCusBankInfoParam param, HttpServletRequest request) {
+        Systemmanager user = iSystemmanagerMapper.selectOne(new QueryWrapper<Systemmanager>().eq("LOGINCODE", iCommonService.getUserLoginCode(request)));
+        if (param.getCusbankinfo() != null && !param.getCusbankinfo().isEmpty()) {
+            return updateBankInfo(param, param.getCusbankinfo(), request);
+        } else {
+            return saveBankInfo(param, request);
+        }
+    }
+
+    private AjaxResult updateBankInfo(BankCusBankInfoParam param, String cusbankinfo, HttpServletRequest request) {
+        if (cusbankinfo != null && !cusbankinfo.isEmpty()) {
+            if (!cusbankinfo.equals(param.getCusbankid())) {
+                BankCusbankinfo bankCus = iBankCusbankinfoMapper.selectOne(new QueryWrapper<BankCusbankinfo>().eq("cusbankid", param.getCusbankid()));
+                if (bankCus != null) {
+                    return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM030.getCode(), request.getHeader("Accept-Language"));
+                }
+
+                BankCusbankstatus bankCusbankstatus = iBankCusbankstatusMapper.selectOne(new QueryWrapper<BankCusbankstatus>()
+                        .eq("cusbankid", param.getCusbankid()));
+                bankCusbankstatus.setCusbankid(param.getCusbankid());
+                iBankCusbankstatusMapper.update(bankCusbankstatus, new QueryWrapper<BankCusbankstatus>()
+                        .eq("cusbankid", param.getCusbankid()));
+            }
+        }
+
+        if (cusbankinfo != null && !cusbankinfo.isEmpty()) {
+            iBankCusbankinfoMapper.delete(new QueryWrapper<BankCusbankinfo>().eq("cusbankid", cusbankinfo));
+        }
+        BankCusbankinfo bankCusBankInfo = insertBankInfo(param);
+        iBankCusbankinfoMapper.insert(bankCusBankInfo);
+
+        //托管银行手续费
+        //出入金手续费区间配置
+        iBankCusbankchargedetailMapper.delete(new QueryWrapper<BankCusbankchargedetail>().eq("cusbankid", param.getCusbankid()));
+        //出入金手续费配置先删除再添加
+        iBankCusbankchargeMapper.delete(new QueryWrapper<BankCusbankcharge>().eq("cusbankid", param.getCusbankid()));
+
+        dealCharge(param);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    private AjaxResult saveBankInfo(BankCusBankInfoParam param, HttpServletRequest request) {
+        BankCusbankinfo bankCus = iBankCusbankinfoMapper.selectOne(new QueryWrapper<BankCusbankinfo>().eq("cusbankid", param.getCusbankid()));
+        if (bankCus != null) {
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM030.getCode(), request.getHeader("Accept-Language"));
+        }
+        BankCusbankinfo bankCusBankInfo = insertBankInfo(param);
+        iBankCusbankinfoMapper.insert(bankCusBankInfo);
+
+        //状态表
+        BankCusbankstatus status = new BankCusbankstatus();
+        status.setCusbankid(param.getCusbankid());
+        status.setTradedate(DateTimeUtils.format(new Date(), DateTimeUtils.DATE_CHAR_PATTERN));
+        status.setSignstatus(2);
+        iBankCusbankstatusMapper.insert(status);
+
+        //新增托管银行时   默认将所有银行插入支持银行表中
+        //查询所有银行
+        List<BankBankinfo> bankInfos = iBankBankinfoMapper.selectList(new QueryWrapper<BankBankinfo>().eq("status", 0));
+        for (BankBankinfo bInfo : bankInfos) {
+            BankCusbanksignbank bankSignbank = new BankCusbanksignbank();
+            bankSignbank.setCusbankid(param.getCusbankid());
+            bankSignbank.setBankid(bInfo.getBankid());
+            iBankCusbanksignbankMapper.insert(bankSignbank);
+        }
+
+        //托管银行手续费
+        dealCharge(param);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    private void dealCharge(BankCusBankInfoParam param) {
+        if (null != param.getCharge()) {
+            for (BankCusbankcharge bankChaConfig : param.getCharge()) {
+                BankCusbankcharge bankCharge = new BankCusbankcharge();
+                if (bankChaConfig != null) {
+                    BeanUtils.copyProperties(bankChaConfig, bankCharge);
+                    if (bankChaConfig.getChargetype() == 1) {
+                        bankCharge.setChargealgorithm(bankChaConfig.getChargealgorithm());
+                        if (null != bankChaConfig.getChargealgorithm() && bankChaConfig.getChargealgorithm() == 1) {
+                            //比率  /100
+                            bankCharge.setChargevalue(bankChaConfig.getChargevalue().divide(new BigDecimal(100)));
+                        } else if (bankChaConfig.getChargealgorithm() == 2) {
+                            //固定
+                            bankCharge.setChargevalue(bankChaConfig.getChargevalue());
+                        }
+                        bankCharge.setSinglemin(bankChaConfig.getSinglemin());
+                        bankCharge.setSinglemax(bankChaConfig.getSinglemax());
+                    }
+                    iBankCusbankchargeMapper.insert(bankCharge);
+                }
+            }
+        }
+        if (null != param.getChargeDetail()) {
+            for (BankCusbankchargedetail bRConfig : param.getChargeDetail()) {
+                BankCusbankchargedetail bRangeConfig = new BankCusbankchargedetail();
+                if (bRConfig != null) {
+                    BeanUtils.copyProperties(bRConfig, bRangeConfig);
+                    if (null != bRConfig.getChargealgorithm() && bRConfig.getChargealgorithm() == 1) {
+                        bRangeConfig.setChargevalue(bRConfig.getChargevalue().divide(new BigDecimal(100)));
+                    } else {
+                        bRangeConfig.setChargevalue(bRConfig.getChargevalue());
+                    }
+                    iBankCusbankchargedetailMapper.insert(bRangeConfig);
+                }
+            }
+        }
+    }
+
+    private static BankCusbankinfo insertBankInfo(BankCusBankInfoParam param) {
+        BankCusbankinfo bankCusBankInfo = new BankCusbankinfo();
+        bankCusBankInfo.setCusbankid(param.getCusbankid());
+        bankCusBankInfo.setCusbankname(param.getCusbankname());
+        bankCusBankInfo.setCusbankshortname(param.getCusbankshortname());
+        bankCusBankInfo.setExchbankid(param.getExchbankid());
+        bankCusBankInfo.setExchpaybankaccno(param.getExchpaybankaccno());
+        bankCusBankInfo.setExchpaybankaccname(param.getExchpaybankaccname());
+        bankCusBankInfo.setCurrency(param.getCurrency());
+        bankCusBankInfo.setCansign(param.getCansign());
+        bankCusBankInfo.setCanrelease(param.getCanrelease());
+        bankCusBankInfo.setCaninamount(param.getCaninamount());
+        bankCusBankInfo.setCanoutamount(param.getCanoutamount());
+        bankCusBankInfo.setCansign2(param.getCansign2());
+        bankCusBankInfo.setCanrelease2(param.getCanrelease2());
+        bankCusBankInfo.setCaninamount2(param.getCaninamount2());
+        bankCusBankInfo.setCanoutamount2(param.getCanoutamount2());
+        bankCusBankInfo.setRiskinfo(param.getRiskinfo());
+        bankCusBankInfo.setCanbindcard(param.getCanbindcard());
+        bankCusBankInfo.setIsneedclear(param.getIsneedclear());
+        bankCusBankInfo.setCanmodifyphone(param.getCanmodifyphone());
+        bankCusBankInfo.setCanmodifysigninfo(param.getCanmodifysigninfo());
+        bankCusBankInfo.setExputbankid(param.getExputbankid());
+        bankCusBankInfo.setExputpaybankaccno(param.getExputpaybankaccno());
+        bankCusBankInfo.setExputpaybankaccsubno(param.getExputpaybankaccsubno());
+        bankCusBankInfo.setExputpaybankaccname(param.getExputpaybankaccname());
+        bankCusBankInfo.setIsmix(param.getIsmix());
+        bankCusBankInfo.setAreainauditflag(param.getAreainauditflag());
+        bankCusBankInfo.setInvestorinauditflag(param.getInvestorinauditflag());
+        bankCusBankInfo.setAreaoutauditflag(param.getAreaoutauditflag());
+        bankCusBankInfo.setAreaoutauditamount(param.getAreaoutauditamount());
+        bankCusBankInfo.setAreaoutauditflag2(param.getAreaoutauditflag2());
+        bankCusBankInfo.setInvestoroutauditflag(param.getInvestoroutauditflag());
+        bankCusBankInfo.setInvestoroutauditamount(param.getInvestoroutauditamount());
+        bankCusBankInfo.setInvestoroutauditflag2(param.getInvestoroutauditflag2());
+        return bankCusBankInfo;
+    }
+
+    @Override
+    public AjaxResult deleteBankInfo(String cusbankid, HttpServletRequest request) {
+        //查询是否已用此渠道签约  状态为1 未签约  7 已解约  时可以删除  其他不能删除
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("cusbankid", cusbankid);
+        //查询签约  状态 不为  1,7 的数据
+        List<BankAccountsign> accountSign = iBankAccountsignMapper.selectList(new QueryWrapper<BankAccountsign>()
+                .eq("cusbankid", cusbankid)
+                .in("signstatus", 2, 3, 4, 5, 6, 8, 9, 10));
+        if (!accountSign.isEmpty()) {
+            //已用此渠道签约  并且状态不为 1,7 不能删除
+            return AjaxResult.error(Constants.Error_Code_Design, MessageType.MESSAGE_ERROR_CODE_SYSTEM030.getCode(), request.getHeader("Accept-Language"));
+        } else {
+            //未用此渠道签约   或者  已用此渠道签约 ,并且状态为 1,7
+            //删除关联支持银行
+            iBankCusbanksignbankMapper.delete(new QueryWrapper<BankCusbanksignbank>().eq("cusbankid", cusbankid));
+            //删除扩展设置
+            iBankCusbankextendconfigMapper.delete(new QueryWrapper<BankCusbankextendconfig>().eq("cusbankid", cusbankid));
+            //删除托管银行状态表Bank_CusBankStatus
+            iBankCusbankstatusMapper.delete(new QueryWrapper<BankCusbankstatus>().eq("cusbankid", cusbankid));
+            //删除托管银行信息
+            iBankCusbankinfoMapper.delete(new QueryWrapper<BankCusbankinfo>().eq("cusbankid", cusbankid));
+            //删除托管银行手续费相关
+            iBankCusbankchargeMapper.delete(new QueryWrapper<BankCusbankcharge>().eq("cusbankid", cusbankid));
+            iBankCusbankchargedetailMapper.delete(new QueryWrapper<BankCusbankchargedetail>().eq("cusbankid", cusbankid));
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult<BankCusbankextendconfig> queryExtendset(String cusbankid, HttpServletRequest request) {
+        List<BankCusbankextendconfig> config = iBankCusbankextendconfigMapper.queryExtendset(cusbankid);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), config);
+    }
+
+    @Override
+    public AjaxResult<BankExtendBizTypeResult> extendBizTypeInit(String cusbankid, HttpServletRequest request) {
+        BankExtendBizTypeResult result = new BankExtendBizTypeResult();
+        List<BankExtendfield> bankExtendFields = iBankExtendfieldMapper.selectList(new QueryWrapper<>());
+        result.setExtendfields(bankExtendFields);
+
+        List<Enumdicitem> enumdicitemList = iEnumdicitemMapper.querybiztypeList(cusbankid);
+        result.setEnumdicitemList(enumdicitemList);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), result);
+    }
+
+    @Override
+    public AjaxResult<BankCusbankextendconfig> extendDetail(String cusbankid, Integer extendbiztype, HttpServletRequest request) {
+        BankCusbankextendconfig config = iBankCusbankextendconfigMapper.selectOne(new QueryWrapper<BankCusbankextendconfig>()
+                .eq("cusbankid", cusbankid)
+                .eq("extendbiztype", extendbiztype));
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), config);
+    }
+
+    @Override
+    public AjaxResult dealBankExtend(BankExtendAddParam param, HttpServletRequest request) {
+        //先删除 再新增
+        iBankCusbankextendconfigMapper.delete(new QueryWrapper<BankCusbankextendconfig>()
+                .eq("cusbankid", param.getCusbankid())
+                .eq("extendbiztype", param.getExtendbiztype()));
+
+        String[] extendList = param.getFieldids().split(",");
+        for (String cusbankExtend : extendList) {
+            BankCusbankextendconfig bankConfig = new BankCusbankextendconfig();
+            bankConfig.setCusbankid(param.getCusbankid());
+            bankConfig.setExtendbiztype(param.getExtendbiztype());
+            bankConfig.setFieldid(Long.valueOf(cusbankExtend));
+            //勾选的都默认必填
+            bankConfig.setIsmandatory(1);
+            iBankCusbankextendconfigMapper.insert(bankConfig);
+        }
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult delExtend(String cusbankid, Integer extendbiztype, HttpServletRequest request) {
+        iBankCusbankextendconfigMapper.delete(new QueryWrapper<BankCusbankextendconfig>()
+                .eq("cusbankid", cusbankid)
+                .eq("extendbiztype", extendbiztype));
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult<BankCusbanksignbank> queryBankSignList(String cusbankid, HttpServletRequest request) {
+        List<BankCusbanksignbank> list = iBankCusbanksignbankMapper.queryBankSignList(cusbankid);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), list);
+    }
+
+    @Override
+    public AjaxResult<BankBankinfo> queryBankInfoNotExist(String cusbankid, HttpServletRequest request) {
+        List<BankBankinfo> list = iBankCusbanksignbankMapper.queryBankInfoNotExist(cusbankid);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"), list);
+    }
+
+    @Override
+    public AjaxResult delBankInfo(String cusbankid, Integer bankid, HttpServletRequest request) {
+        iBankCusbanksignbankMapper.delete(new QueryWrapper<BankCusbanksignbank>()
+                .eq("cusbankid", cusbankid)
+                .eq("bankid", bankid));
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+
+    @Override
+    public AjaxResult dealBankCusBankSign(BankCusBankSignAddParam param, HttpServletRequest request) {
+        BankCusbanksignbank bankSignbank = new BankCusbanksignbank();
+        bankSignbank.setCusbankid(param.getCusbankid());
+        bankSignbank.setBankid(param.getBankid());
+        iBankCusbanksignbankMapper.insert(bankSignbank);
+        return AjaxResult.success(Constants.Success_Code_Design, MessageType.MESSAGE_CODE_SYSTEM001.getCode(), request.getHeader("Accept-Language"));
+    }
+}

+ 31 - 0
mtp3-century/src/main/resources/mapper/BankCusbankextendconfigMapper.xml

@@ -0,0 +1,31 @@
+<?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.muchinfo.mtp3interface.mapper.IBankCusbankextendconfigMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.muchinfo.mtp3pojos.entity.BankCusbankextendconfig">
+        <id column="CUSBANKID" property="cusbankid" />
+        <result column="EXTENDBIZTYPE" property="extendbiztype" />
+        <result column="FIELDID" property="fieldid" />
+        <result column="ISMANDATORY" property="ismandatory" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        CUSBANKID, EXTENDBIZTYPE, FIELDID, ISMANDATORY
+    </sql>
+    <select id="queryExtendset" resultType="com.muchinfo.mtp3pojos.entity.BankCusbankextendconfig"
+            parameterType="java.lang.String">
+        select
+            wm_concat(to_char(b.fieldname)) as fieldnames,
+            t.extendbiztype
+        from BANK_CUSBANKEXTENDCONFIG t
+                 left join Bank_ExtendField b on
+            b.fieldid = t.fieldid
+        where
+            t.cusbankid = #{cusbankid}
+        group by
+            t.extendbiztype
+    </select>
+
+</mapper>

+ 32 - 0
mtp3-century/src/main/resources/mapper/BankCusbanksignbankMapper.xml

@@ -0,0 +1,32 @@
+<?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.muchinfo.mtp3interface.mapper.IBankCusbanksignbankMapper">
+
+
+    <select id="queryBankSignList" resultType="com.muchinfo.mtp3pojos.entity.BankCusbanksignbank"
+            parameterType="java.lang.String">
+        select
+            t.cusbankid,t.bankid,b.bankname
+        from BANK_CUSBANKSIGNBANK t
+                 left join BANK_BANKINFO b on t.bankid = b.bankid
+        where t.cusbankid = #{cusbankid}
+        order by b.orderindex asc
+    </select>
+
+    <select id="queryBankInfoNotExist" resultType="com.muchinfo.mtp3pojos.entity.BankBankinfo"
+            parameterType="java.lang.String">
+        select t.bankid,t.bankname
+        from bank_bankinfo t
+        <where>
+            <if test="searchcode != null and searchcode  !=''">
+                t.bankname like '%'||#{searchcode,jdbcType=VARCHAR}||'%'
+            </if>
+            <if test="pageSize != null and pageSize != 0">
+                AND rownum &lt;=#{pageSize}
+            </if>
+            and t.bankid not in
+            (select b.bankid from BANK_CUSBANKSIGNBANK b where b.cusbankid =
+            #{cusbankid})
+        </where>
+    </select>
+</mapper>

+ 10 - 0
mtp3-century/src/main/resources/mapper/EnumdicitemMapper.xml

@@ -39,5 +39,15 @@
         from ENUMDICITEM e left join enumdicitemex ex on e.ENUMDICCODE = ex.ENUMDICCODE and e.enumitemname = ex.enumitemname
         where e.ENUMDICCODE = #{typeCode}
     </select>
+    <select id="querybiztypeList" resultType="com.muchinfo.mtp3pojos.entity.Enumdicitem"
+            parameterType="java.lang.String">
+        select t.enumitemname,t.enumdicname from ENUMDICITEM t
+        where t.enumdiccode =
+              'extendbiztype'
+          and t.enumitemname not in
+              (select
+                   distinct b.extendbiztype from BANK_CUSBANKEXTENDCONFIG b where
+                   b.cusbankid = #{cusbankid,jdbcType=VARCHAR})
+    </select>
 
 </mapper>

+ 3 - 0
mtp3-century/src/main/resources/message_en.properties

@@ -56,6 +56,9 @@ message_error_code_system025=Delete failed, please delete its sub regions first
 message_error_code_system026=The enumeration code already exists
 message_error_code_system027=The name already exists
 message_error_code_system028=The enumeration item value already exists
+message_error_code_system029=Missing configuration item
+message_error_code_system030=Delete failed, signed through this channel
+message_error_code_system031=The custodian bank number already exists
 login_error_code_001=Account or password error
 login_error_code_002=Unauthorized access is not allowed! Please contact the administrator to handle it!
 login_error_code_003=Login locked!

+ 3 - 0
mtp3-century/src/main/resources/message_th.properties

@@ -56,6 +56,9 @@ message_error_code_system025=\u0E01\u0E32\u0E23\u0E25\u0E1A\u0E25\u0E49\u0E21\u0
 message_error_code_system026=\u0E23\u0E2B\u0E31\u0E2A\u0E01\u0E32\u0E23\u0E41\u0E08\u0E01\u0E41\u0E08\u0E07\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
 message_error_code_system027=\u0E0A\u0E37\u0E48\u0E2D\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
 message_error_code_system028=\u0E04\u0E48\u0E32\u0E02\u0E2D\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23 enumeration \u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
+message_error_code_system029=\u0E02\u0E32\u0E14\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E1B\u0E23\u0E31\u0E1A\u0E41\u0E15\u0E48\u0E07
+message_error_code_system030=\u0E01\u0E32\u0E23\u0E25\u0E1A\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27\u0E44\u0E14\u0E49\u0E25\u0E07\u0E19\u0E32\u0E21\u0E43\u0E19\u0E0A\u0E48\u0E2D\u0E07\u0E17\u0E32\u0E07\u0E19\u0E35\u0E49\u0E41\u0E25\u0E49\u0E27
+message_error_code_system031=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E18\u0E19\u0E32\u0E04\u0E32\u0E23\u0E17\u0E35\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 \u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E41\u0E25\u0E49\u0E27
 login_error_code_001=\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E2B\u0E23\u0E37\u0E2D\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07
 login_error_code_002=\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E44\u0E14\u0E49\u0E42\u0E14\u0E22\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15! \u0E01\u0E23\u0E38\u0E13\u0E32\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23!
 login_error_code_003=\u0E25\u0E47\u0E2D\u0E01\u0E2D\u0E34\u0E19!

+ 3 - 0
mtp3-century/src/main/resources/message_vi.properties

@@ -56,6 +56,9 @@ message_error_code_system025=X\u00F3a kh\u00F4ng th\u00E0nh c\u00F4ng, tr\u01B0\
 message_error_code_system026=M\u00E3 li\u1EC7t k\u00EA \u0111\u00E3 t\u1ED3n t\u1EA1i
 message_error_code_system027=T\u00EAn \u0111\u00E3 t\u1ED3n t\u1EA1i
 message_error_code_system028=Gi\u00E1 tr\u1ECB Enumeration \u0111\u00E3 t\u1ED3n t\u1EA1i
+message_error_code_system029=Thi\u1EBFu m\u1EE5c c\u1EA5u h\u00ECnh
+message_error_code_system030=X\u00F3a kh\u00F4ng th\u00E0nh c\u00F4ng, \u0111\u00E3 \u0111\u0103ng k\u00FD v\u1EDBi k\u00EAnh n\u00E0y
+message_error_code_system031=S\u1ED1 ng\u00E2n h\u00E0ng k\u00FD qu\u1EF9 \u0111\u00E3 c\u00F3
 login_error_code_001=L\u1ED7i t\u00E0i kho\u1EA3n ho\u1EB7c m\u1EADt kh\u1EA9u
 login_error_code_002=Kh\u00F4ng \u0111\u01B0\u1EE3c ph\u00E9p, kh\u00F4ng th\u1EC3 truy c\u1EADp! Vui l\u00F2ng li\u00EAn h\u1EC7 v\u1EDBi qu\u1EA3n tr\u1ECB vi\u00EAn \u0111\u1EC3 x\u1EED l\u00FD!
 login_error_code_003=Kh\u00F3a \u0111\u0103ng nh\u1EADp!

+ 3 - 0
mtp3-century/src/main/resources/message_zh-cn.properties

@@ -56,6 +56,9 @@ message_error_code_system025=\u5220\u9664\u5931\u8D25,\u8BF7\u5148\u5C06\u5176\u
 message_error_code_system026=\u679A\u4E3E\u4EE3\u7801\u5DF2\u7ECF\u5B58\u5728
 message_error_code_system027=\u540D\u79F0\u5DF2\u7ECF\u5B58\u5728
 message_error_code_system028=\u679A\u4E3E\u9879\u503C\u5DF2\u7ECF\u5B58\u5728
+message_error_code_system029=\u7F3A\u5931\u914D\u7F6E\u9879
+message_error_code_system030=\u5220\u9664\u5931\u8D25\uFF0C\u5DF2\u7528\u6B64\u6E20\u9053\u7B7E\u7EA6
+message_error_code_system031=\u6258\u7BA1\u94F6\u884C\u7F16\u53F7\u5DF2\u5B58\u5728
 login_error_code_001=\u8D26\u6237\u6216\u5BC6\u7801\u9519\u8BEF
 login_error_code_002=\u672A\u7ECF\u5141\u8BB8\uFF0C\u4E0D\u53EF\u8BBF\u95EE\uFF01\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u5904\u7406\uFF01
 login_error_code_003=\u767B\u5F55\u9501\u5B9A\uFF01

+ 3 - 0
mtp3-century/src/main/resources/message_zh-hk.properties

@@ -56,6 +56,9 @@ message_error_code_system025=\u5220\u9664\u5931\u8D25,\u8BF7\u5148\u5C06\u5176\u
 message_error_code_system026=\u679A\u8209\u7A0B\u5F0F\u78BC\u5DF2\u7D93\u5B58\u5728
 message_error_code_system027=\u540D\u7A31\u5DF2\u7D93\u5B58\u5728
 message_error_code_system028=\u679A\u8209\u9805\u503C\u5DF2\u7D93\u5B58\u5728
+message_error_code_system029=\u7F3A\u5931\u914D\u5BD8\u9805
+message_error_code_system030=\u5220\u9664\u5931\u6557\uFF0C\u5DF2\u7528\u6B64\u901A\u8DEF\u7C3D\u7D04
+message_error_code_system031=\u8A17\u7BA1\u9280\u884C\u7DE8\u865F\u5DF2\u5B58\u5728
 login_error_code_001=\u5E33\u6236\u6216\u5BC6\u78BC\u932F\u8AA4
 login_error_code_002=\u672A\u7D93\u5141\u8A31\uFF0C\u4E0D\u53EF\u8A2A\u554F\uFF01 \u8ACB\u806F\u7CFB\u7BA1\u7406\u54E1\u8655\u7406\uFF01
 login_error_code_003=\u767B\u5165\u9396\u5B9A\uFF01

+ 3 - 0
mtp3-century/src/main/resources/message_zh-tw.properties

@@ -56,6 +56,9 @@ message_error_code_system025=\u5220\u9664\u5931\u6557\uFF0C\u8ACB\u5148\u5C07\u5
 message_error_code_system026=\u679A\u8209\u7A0B\u5F0F\u78BC\u5DF2\u7D93\u5B58\u5728
 message_error_code_system027=\u540D\u7A31\u5DF2\u7D93\u5B58\u5728
 message_error_code_system028=\u679A\u8209\u9805\u503C\u5DF2\u7D93\u5B58\u5728
+message_error_code_system029=\u7F3A\u5931\u914D\u5BD8\u9805
+message_error_code_system030=\u5220\u9664\u5931\u6557\uFF0C\u5DF2\u7528\u6B64\u901A\u8DEF\u7C3D\u7D04
+message_error_code_system031=\u8A17\u7BA1\u9280\u884C\u7DE8\u865F\u5DF2\u5B58\u5728
 login_error_code_001=\u5E33\u6236\u6216\u5BC6\u78BC\u932F\u8AA4
 login_error_code_002=\u672A\u7D93\u5141\u8A31\uFF0C\u4E0D\u53EF\u8A2A\u554F\uFF01 \u8ACB\u806F\u7CFB\u7BA1\u7406\u54E1\u8655\u7406\uFF01
 login_error_code_003=\u767B\u5165\u9396\u5B9A\uFF01

+ 3 - 0
mtp3-common/src/main/java/com/muchinfo/mtp3common/enumtype/MessageType.java

@@ -64,6 +64,9 @@ public enum MessageType {
     MESSAGE_ERROR_CODE_SYSTEM026("message_error_code_system026", "枚举代码已经存在"),
     MESSAGE_ERROR_CODE_SYSTEM027("message_error_code_system027", "名称已经存在"),
     MESSAGE_ERROR_CODE_SYSTEM028("message_error_code_system028", "枚举项值已经存在"),
+    MESSAGE_ERROR_CODE_SYSTEM029("message_error_code_system029", "缺失配置项"),
+    MESSAGE_ERROR_CODE_SYSTEM030("message_error_code_system030", "删除失败,已用此渠道签约"),
+    MESSAGE_ERROR_CODE_SYSTEM031("message_error_code_system031", "托管银行编号已存在"),
 
     LOGIN_ERROR_CODE_001("login_error_code_001", "账户或密码错误"),
     LOGIN_ERROR_CODE_002("login_error_code_002", "未经允许,不可访问!请联系管理员处理"),

+ 16 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankchargeMapper.java

@@ -0,0 +1,16 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankCusbankcharge;
+
+/**
+ * <p>
+ * 托管银行手续费配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-23
+ */
+public interface IBankCusbankchargeMapper extends BaseMapper<BankCusbankcharge> {
+
+}

+ 17 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankchargedetailMapper.java

@@ -0,0 +1,17 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankCusbankchargedetail;
+
+/**
+ * <p>
+ * 托管银行手续费区间配置表
+(手续费收取类型为区间时取此表) Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-23
+ */
+public interface IBankCusbankchargedetailMapper extends BaseMapper<BankCusbankchargedetail> {
+
+}

+ 20 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankextendconfigMapper.java

@@ -0,0 +1,20 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankCusbankextendconfig;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 托管银行扩展配置表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+public interface IBankCusbankextendconfigMapper extends BaseMapper<BankCusbankextendconfig> {
+
+    List<BankCusbankextendconfig> queryExtendset(@Param("cusbankid") String cusbankid);
+}

+ 23 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbanksignbankMapper.java

@@ -0,0 +1,23 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankBankinfo;
+import com.muchinfo.mtp3pojos.entity.BankCusbanksignbank;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 托管银行签约银行表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+public interface IBankCusbanksignbankMapper extends BaseMapper<BankCusbanksignbank> {
+
+    List<BankCusbanksignbank> queryBankSignList(@Param("cusbankid") String cusbankid);
+
+    List<BankBankinfo> queryBankInfoNotExist(@Param("cusbankid") String cusbankid);
+}

+ 16 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankCusbankstatusMapper.java

@@ -0,0 +1,16 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankCusbankstatus;
+
+/**
+ * <p>
+ * 托管银行状态表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+public interface IBankCusbankstatusMapper extends BaseMapper<BankCusbankstatus> {
+
+}

+ 16 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IBankExtendfieldMapper.java

@@ -0,0 +1,16 @@
+package com.muchinfo.mtp3interface.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muchinfo.mtp3pojos.entity.BankExtendfield;
+
+/**
+ * <p>
+ * 扩展字段定义表 Mapper 接口
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-29
+ */
+public interface IBankExtendfieldMapper extends BaseMapper<BankExtendfield> {
+
+}

+ 2 - 0
mtp3-interface/src/main/java/com/muchinfo/mtp3interface/mapper/IEnumdicitemMapper.java

@@ -21,4 +21,6 @@ public interface IEnumdicitemMapper extends BaseMapper<Enumdicitem> {
     String selectCurrencyName(@Param("emvalue") Integer currencyid);
 
     List<Enumdicitem> selectInternational(@Param("typeCode") String typeCode);
+
+    List<Enumdicitem> querybiztypeList(@Param("cusbankid") String cusbankid);
 }

+ 72 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankcharge.java

@@ -0,0 +1,72 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 托管银行手续费配置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_CUSBANKCHARGE")
+@ApiModel(value="BankCusbankcharge对象", description="托管银行手续费配置表")
+public class BankCusbankcharge extends Model<BankCusbankcharge> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "托管银行编号")
+    @TableId(value = "CUSBANKID")
+    private String cusbankid;
+
+    @ApiModelProperty(value = "出入金类型 - 1:出金 2:入金 ")
+    @TableField("OUTORIN")
+    private Integer outorin;
+
+    @ApiModelProperty(value = "客户类型 -  1:对私 2:对公")
+    @TableField("USERTYPE")
+    private Integer usertype;
+
+    @ApiModelProperty(value = "手续费收取类型 - 1:统一 2:区间 [Detail表]")
+    @TableField("CHARGETYPE")
+    private Integer chargetype;
+
+    @ApiModelProperty(value = "手续费收取方式 - 1:比率  2:固定  [统一 ]")
+    @TableField("CHARGEALGORITHM")
+    private Integer chargealgorithm;
+
+    @ApiModelProperty(value = "手续费值 [统一 ]")
+    @TableField("CHARGEVALUE")
+    private BigDecimal chargevalue;
+
+    @ApiModelProperty(value = "单笔最低值 [统一/区间] (仅对比率生效,0为不限)")
+    @TableField("SINGLEMIN")
+    private BigDecimal singlemin;
+
+    @ApiModelProperty(value = "单笔最高值 [统一/区间] (仅对比率生效,0为不限)")
+    @TableField("SINGLEMAX")
+    private BigDecimal singlemax;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.cusbankid;
+    }
+
+}

+ 74 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankchargedetail.java

@@ -0,0 +1,74 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 托管银行手续费区间配置表
+(手续费收取类型为区间时取此表)
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-23
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_CUSBANKCHARGEDETAIL")
+@ApiModel(value="BankCusbankchargedetail对象", description="托管银行手续费区间配置表 (手续费收取类型为区间时取此表)")
+
+public class BankCusbankchargedetail extends Model<BankCusbankchargedetail> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "托管银行编号")
+    @TableId(value = "CUSBANKID")
+    private String cusbankid;
+
+    @ApiModelProperty(value = "出入金类型 - 1:出金 2:入金 ")
+    @TableField("OUTORIN")
+    private Integer outorin;
+
+    @ApiModelProperty(value = "客户类型 -  1:对私 2:对公")
+    @TableField("USERTYPE")
+    private Integer usertype;
+
+    @ApiModelProperty(value = "区间序号 - 金额由小到大递增,从1开始; 添加、修改、删除区间时须重新变更")
+    @TableField("RANGEORDER")
+    private Integer rangeorder;
+
+    @ApiModelProperty(value = "区间左值")
+    @TableField("RANGEMIN")
+    private BigDecimal rangemin;
+
+    @ApiModelProperty(value = "区间右值")
+    @TableField("RANGEMAX")
+    private BigDecimal rangemax;
+
+    @ApiModelProperty(value = "手续费收取方式 - 1:比率 2:固定")
+    @TableField("CHARGEALGORITHM")
+    private Integer chargealgorithm;
+
+    @ApiModelProperty(value = "手续费值")
+    @TableField("CHARGEVALUE")
+    private BigDecimal chargevalue;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.cusbankid;
+    }
+
+}

+ 58 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankextendconfig.java

@@ -0,0 +1,58 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 托管银行扩展配置表
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_CUSBANKEXTENDCONFIG")
+@ApiModel(value="BankCusbankextendconfig对象", description="托管银行扩展配置表")
+public class BankCusbankextendconfig extends Model<BankCusbankextendconfig> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "托管银行编号")
+    @TableId(value = "CUSBANKID")
+    private String cusbankid;
+
+    @ApiModelProperty(value = "扩展业务类型 - 1:签约 2:入金 3:出金 4:签约信息修改")
+    @TableField("EXTENDBIZTYPE")
+    private Integer extendbiztype;
+
+    @ApiModelProperty(value = "字段ID")
+    @TableField("FIELDID")
+    private Long fieldid;
+
+    @ApiModelProperty(value = "是否必填 - 0:不必填 1:必填")
+    @TableField("ISMANDATORY")
+    private Integer ismandatory;
+
+    @TableField(select = false)
+    private String fieldnames;
+
+    @Override
+    public Serializable pkVal() {
+        return this.cusbankid;
+    }
+
+}

+ 36 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankinfo.java

@@ -11,6 +11,7 @@ import lombok.*;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * <p>
@@ -144,6 +145,41 @@ public class BankCusbankinfo extends Model<BankCusbankinfo> {
     @TableField("EXPUTPAYBANKACCSUBNO")
     private String exputpaybankaccsubno;
 
+    @ApiModelProperty(value = "是否混合渠道  0:否, 1:是(出入金不同外部接口 - TCE)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer ismix;
+
+    @ApiModelProperty(value = "入金是否需要审核(机构)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer areainauditflag;
+
+    @ApiModelProperty(value = "入金是否需要审核(交易商)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer investorinauditflag;
+
+    @ApiModelProperty(value = "出金是否需要审核(机构)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer areaoutauditflag;
+
+    @ApiModelProperty(value = "出金超额审核金额(机构)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private BigDecimal areaoutauditamount;
+
+    @ApiModelProperty(value = "出金是否需要复审(机构)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer areaoutauditflag2;
+
+    @ApiModelProperty(value = "出金是否需要审核(交易商)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer investoroutauditflag;
+
+    @ApiModelProperty(value = "出金超额审核金额(交易商)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private BigDecimal investoroutauditamount;
+
+    @ApiModelProperty(value = "出金是否需要复审(交易商)")
+    @TableField("EXPUTPAYBANKACCSUBNO")
+    private Integer investoroutauditflag2;
 
     @Override
     public Serializable pkVal() {

+ 48 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbanksignbank.java

@@ -0,0 +1,48 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 托管银行签约银行表
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_CUSBANKSIGNBANK")
+@ApiModel(value="BankCusbanksignbank对象", description="托管银行签约银行表")
+public class BankCusbanksignbank extends Model<BankCusbanksignbank> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "托管银行ID")
+    @TableId(value = "CUSBANKID")
+    private String cusbankid;
+
+    @ApiModelProperty(value = "银行ID")
+    @TableField("BANKID")
+    private String bankid;
+
+    @TableField(select = false)
+    private String bankname;
+
+    @Override
+    public Serializable pkVal() {
+        return this.cusbankid;
+    }
+
+}

+ 80 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankCusbankstatus.java

@@ -0,0 +1,80 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 托管银行状态表
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_CUSBANKSTATUS")
+@ApiModel(value="BankCusbankstatus对象", description="托管银行状态表")
+public class BankCusbankstatus extends Model<BankCusbankstatus> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "托管银行ID")
+    @TableId(value = "CUSBANKID")
+    private String cusbankid;
+
+    @ApiModelProperty(value = "交易日(yyyyMMdd)")
+    @TableField("TRADEDATE")
+    private String tradedate;
+
+    @ApiModelProperty(value = "当前签到/签退状态 - 1:签到 2:签退")
+    @TableField("SIGNSTATUS")
+    private Integer signstatus;
+
+    @ApiModelProperty(value = "当前签到/签退更新时间")
+    @TableField("UPDATETIME")
+    private Date updatetime;
+
+    @ApiModelProperty(value = "最后签到时间")
+    @TableField("LASTSIGNINTIME")
+    private Date lastsignintime;
+
+    @ApiModelProperty(value = "最后签退时间")
+    @TableField("LASTSIGNOUTTIME")
+    private Date lastsignouttime;
+
+    @ApiModelProperty(value = "最后对账时间")
+    @TableField("LASTCHECKTIME")
+    private Date lastchecktime;
+
+    @ApiModelProperty(value = "最后对账状态 -  对账状态 - 1:未对账 2:对账成功 3:对账失败")
+    @TableField("LASTCHECKSTATUS")
+    private Integer lastcheckstatus;
+
+    @ApiModelProperty(value = "最后清算时间")
+    @TableField("LASTCLEARTIME")
+    private Date lastcleartime;
+
+    @ApiModelProperty(value = "最后清算状态 - 1:未清算 2:清算成功 3:清算失败 4:清算部分成功")
+    @TableField("LASTCLEARSTATUS")
+    private Integer lastclearstatus;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.cusbankid;
+    }
+
+}

+ 67 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/entity/BankExtendfield.java

@@ -0,0 +1,67 @@
+package com.muchinfo.mtp3pojos.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 扩展字段定义表
+ * </p>
+ *
+ * @author XKF
+ * @since 2025-05-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("BANK_EXTENDFIELD")
+@ApiModel(value="BankExtendfield对象", description="扩展字段定义表")
+public class BankExtendfield extends Model<BankExtendfield> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "字段ID")
+    private Long fieldid;
+
+    @ApiModelProperty(value = "字段代码")
+    @TableField("FIELDCODE")
+    private String fieldcode;
+
+    @ApiModelProperty(value = "字段名称")
+    @TableField("FIELDNAME")
+    private String fieldname;
+
+    @ApiModelProperty(value = "状态 - 0:正常 1:注销")
+    @TableField("STATUS")
+    private Integer status;
+
+    @ApiModelProperty(value = "字段类型 - 1:扩展字段 2:协议字段")
+    @TableField("FIELDTYPE")
+    private Integer fieldtype;
+
+    @ApiModelProperty(value = "可用类型 - 1:通用 2:机构专用 3:投资者专用")
+    @TableField("USABLETYPE")
+    private Integer usabletype;
+
+    @ApiModelProperty(value = "显示顺序 - 用于前端显示")
+    @TableField("ORDERINDEX")
+    private Integer orderindex;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.fieldid;
+    }
+
+}

+ 92 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusBankInfoParam.java

@@ -0,0 +1,92 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import com.muchinfo.mtp3pojos.entity.BankCusbankcharge;
+import com.muchinfo.mtp3pojos.entity.BankCusbankchargedetail;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankCusBankInfoParam对象", description = "银行配置新增")
+public class BankCusBankInfoParam {
+
+    private Integer areainauditflag;
+
+    private BigDecimal areaoutauditamount;
+
+    private Integer areaoutauditflag;
+
+    private Integer areaoutauditflag2;
+
+    private Integer canbindcard;
+
+    private Integer caninamount;
+
+    private Integer caninamount2;
+
+    private Integer canmodifyphone;
+
+    private Integer canmodifysigninfo;
+
+    private Integer canoutamount;
+
+    private Integer canoutamount2;
+
+    private Integer canrelease;
+
+    private Integer canrelease2;
+
+    private Integer cansign;
+
+    private Integer cansign2;
+
+    private String currency;
+
+    private String cusbankid;
+
+    private String cusbankinfo;
+
+    private String cusbankname;
+
+    private String cusbankshortname;
+
+    private String exchbankid;
+
+    private String exchpaybankaccname;
+
+    private String exchpaybankaccno;
+
+    private String exputbankid;
+
+    private String exputpaybankaccname;
+
+    private String exputpaybankaccno;
+
+    private String exputpaybankaccsubno;
+
+    private Integer investorinauditflag;
+
+    private BigDecimal investoroutauditamount;
+
+    private Integer investoroutauditflag;
+
+    private Integer investoroutauditflag2;
+
+    private Integer ismix;
+
+    private Integer isneedclear;
+
+    private String riskinfo;
+
+    private List<BankCusbankcharge> charge;
+
+    private List<BankCusbankchargedetail> chargeDetail;
+}

+ 19 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusBankSignAddParam.java

@@ -0,0 +1,19 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankCusBankSignAddParam对象", description = "银行新增")
+public class BankCusBankSignAddParam {
+
+    private String cusbankid;
+
+    private String bankid;
+}

+ 31 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankCusbankinfoDetailResult.java

@@ -0,0 +1,31 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import com.muchinfo.mtp3pojos.entity.BankCusbankcharge;
+import com.muchinfo.mtp3pojos.entity.BankCusbankchargedetail;
+import com.muchinfo.mtp3pojos.entity.BankCusbankinfo;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankCusbankinfoDetailResult对象", description = "托管银行配置")
+public class BankCusbankinfoDetailResult {
+
+    private BankCusbankinfo bankCusbankinfo;
+
+    private Integer ischeckin;
+
+    private Integer ischeckout;
+
+    private BankCusbankcharge charge;
+
+    private List<BankCusbankchargedetail> range;
+
+}

+ 22 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankExtendAddParam.java

@@ -0,0 +1,22 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankExtendAddParam对象", description = "银行配置扩展新增")
+public class BankExtendAddParam {
+
+    private String cusbankid;
+
+    private Integer extendbiztype;
+
+    private String fieldids;
+}

+ 23 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankExtendBizTypeResult.java

@@ -0,0 +1,23 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import com.muchinfo.mtp3pojos.entity.BankExtendfield;
+import com.muchinfo.mtp3pojos.entity.Enumdicitem;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankExtendBizTypeResult对象", description = "银行配置扩展")
+public class BankExtendBizTypeResult {
+
+    private List<Enumdicitem> enumdicitemList;
+
+    private List<BankExtendfield> extendfields;
+}

+ 20 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/bankbusiness/BankSystemConfigParam.java

@@ -0,0 +1,20 @@
+package com.muchinfo.mtp3pojos.vo.bankbusiness;
+
+import com.muchinfo.mtp3pojos.entity.BankSystemconfig;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "BankSystemConfigParam对象", description = "银行配置")
+public class BankSystemConfigParam {
+
+    private List<BankSystemconfig> bankSystemConfigs;
+}

+ 38 - 0
mtp3-pojos/src/main/java/com/muchinfo/mtp3pojos/vo/query/other/HoldtransferQueryResult.java

@@ -1,11 +1,15 @@
 package com.muchinfo.mtp3pojos.vo.query.other;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 @Builder
 @Data
 @AllArgsConstructor
@@ -13,5 +17,39 @@ import lombok.NoArgsConstructor;
 @ApiModel(value = "HoldtransferQueryResult对象", description = "协议转让")
 public class HoldtransferQueryResult {
 
+    @ApiModelProperty(value = "交易日")
     private String tradedate;
+
+    @ApiModelProperty(value = "市场")
+    private String marketfullname;
+
+    @ApiModelProperty(value = "商品")
+    private String goodsfullname;
+
+    @ApiModelProperty(value = "转出方")
+    private String outname;
+
+    @ApiModelProperty(value = "转入方")
+    private String inname;
+
+    @ApiModelProperty(value = "转让数量")
+    private Integer qty;
+
+    @ApiModelProperty(value = "转让价格")
+    private BigDecimal transferprice;
+
+    @ApiModelProperty(value = "冻结天数")
+    private Integer freezedays;
+
+    @ApiModelProperty(value = "转让类型")
+    private Integer transfertype;
+
+    @ApiModelProperty(value = "状态")
+    private Integer applystatus;
+
+    @ApiModelProperty(value = "申请时间")
+    private Date applytime;
+
+    private Long applyid;
+
 }