Explorar o código

账户管理功能新增

cuixq %!s(int64=3) %!d(string=hai) anos
pai
achega
db6baeb607

+ 27 - 0
tianhu-system/src/main/java/com/tianhu/system/companyAuth/controller/OwnAuthController.java

@@ -101,6 +101,8 @@ public class OwnAuthController extends BaseController {
     @Autowired
     private ISysConfigService configService;
     @Autowired
+    private IPayAccInfService payAccInfService;
+    @Autowired
     private SysRoleMenuMapper roleMenuMapper;
     @Autowired
     private SysProductMenuMapper productMenuMapper;
@@ -1038,6 +1040,25 @@ public class OwnAuthController extends BaseController {
         Date currentTime = DateUtils.getNowDate();
         payBankAccInf.setPbaiCfcaDate(currentTime);
         payBankAccInfService.createPayBankAccInf(payBankAccInf);
+
+        PayAccInf payAccInf =new PayAccInf();
+        payAccInf.setPaiCstno(scyId);
+        payAccInf.setPaiAccno(pbaiBankaccountId);
+        //账户状态(0:未开通,1:冻结,2已开通3:待激活)
+        payAccInf.setPaiStatus("3");
+        payAccInf.setPaiBalance("0.00");
+        payAccInf.setPaiAvabalance("0.00");
+        //账户类型(00基本账户01贷款账户02信用账户03手续费账户04待结算账户05提现账户06虚拟账户07:公共计息账户08:资金初始化账户)
+        payAccInf.setPaiAcctype("00");
+        payAccInf.setPaiCrytype("CNY");
+        payAccInf.setPaiQlbankno(list.get(0).getZcbiBankNo());
+        payAccInf.setPaiQlbankname(list.get(0).getZcbiBankName());
+        payAccInf.setPaiAccnoName(pbaiAccountName);
+        payAccInf.setPaiBankName(list.get(0).getZcbiBankName());
+        payAccInf.setCreateBy(user.getSysUser().getUserId()+"");
+        Date createTime = DateUtils.getNowDate();
+        payAccInf.setCreateTime(createTime);
+        payAccInfService.createPayAccInf(payAccInf);
         SysCompany sysCompany =new SysCompany();
         sysCompany.setScyId(scyId);
         //打款认证
@@ -1129,6 +1150,12 @@ public class OwnAuthController extends BaseController {
         payBankAccInf.setPbaiStatus("0");
         payBankAccInf.setPbaiCfcaTime(AmtUtil.add(bankAcc.get(0).getPbaiCfcaTime(),"1",0));
         payBankAccInfService.updatePayBankAccInf(payBankAccInf);
+        //变更账户状态
+        PayAccInf payAccInf =new PayAccInf();
+        payAccInf.setPaiCstno(users.getCompanyId());
+        payAccInf.setPaiAccno(bankAcc.get(0).getPbaiBankaccountId());
+        payAccInf.setPaiStatus("2");
+        payAccInfService.updatePayAccInf(payAccInf);
         SysCompany sysCompany =new SysCompany();
         sysCompany.setScyId(users.getCompanyId());
         //待实名认证

+ 252 - 0
tianhu-system/src/main/java/com/tianhu/system/controller/PayAccInfController.java

@@ -0,0 +1,252 @@
+package com.tianhu.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.keao.tianhu.starter.mybatis.plus.controller.BaseController;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.keao.tianhu.core.exception.base.BusinessException;
+import com.tianhu.common.core.domain.R;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.IdUtils;
+import com.tianhu.common.core.web.domain.AjaxResult;
+import com.tianhu.common.core.web.page.TableDataInfo;
+import com.tianhu.common.log.annotation.Log;
+import com.tianhu.common.log.enums.BusinessType;
+import com.tianhu.common.security.annotation.PreAuthorize;
+import com.tianhu.common.security.service.TokenService;
+import com.tianhu.system.api.domain.SysUser;
+import com.tianhu.system.api.model.LoginUser;
+import com.tianhu.system.domain.*;
+import com.tianhu.system.service.IPayAccInfService;
+import com.tianhu.system.service.ISysCompanyService;
+import com.tianhu.system.service.IZcCfcaBankInfService;
+import com.tianhu.system.utils.RegularUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.apache.poi.ss.usermodel.Workbook;
+import cn.hutool.core.io.resource.ClassPathResource;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
+
+
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.*;
+
+/**
+ * ClassName: PayAccInfController<br>
+ * Description: PayAccInf Controller <br>
+ * Company: keao
+ *
+ * @author cuixq
+ * @version v1.0.0    2021-10-12  cuixq    由Generator自动创建
+ */
+@Slf4j
+@RestController
+@RequestMapping("/payAccInf")
+public class PayAccInfController extends BaseController {
+
+    @Autowired
+    private IPayAccInfService payAccInfService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @Autowired
+    private IZcCfcaBankInfService zcCfcaBankInfService;
+
+    @Autowired
+    private ISysCompanyService sysCompanyService;
+
+    @GetMapping("list")
+    public R list(String paiAccno,QueryRequest request) {
+        //获取当前操作人员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        LambdaQueryWrapper<PayAccInf> payAccInf = new LambdaQueryWrapper();
+        if (CommonUtil.isNotEmpty(paiAccno)){
+            payAccInf.like(PayAccInf::getPaiAccno,paiAccno);
+        }
+        payAccInf.eq(PayAccInf::getPaiCstno,use.getCompanyId());
+        payAccInf.eq(PayAccInf::getPaiStatus,"2");
+        IPage<PayAccInf> sccInf = payAccInfService.findPayAccInfs(request, payAccInf);
+        return R.ok(sccInf);
+    }
+    /**
+     * 查询企业详情
+     */
+//    @PreAuthorize(hasPermi = "system:company:details")
+    @GetMapping("details/{paiId}")
+    public AjaxResult details(@PathVariable("paiId") String paiId)throws Exception {
+        //获取当前操作人员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        LambdaQueryWrapper<PayAccInf> payAccInf = new LambdaQueryWrapper();
+        payAccInf.eq(PayAccInf::getPaiId,paiId);
+        List<PayAccInf> sccInf = payAccInfService.findPayAccInfs(payAccInf);
+        LambdaQueryWrapper<SysCompany> sysCompany = new LambdaQueryWrapper();
+        sysCompany.eq(SysCompany::getScyId,use.getCompanyId());
+        List<SysCompany> company = sysCompanyService.findSysCompanys(sysCompany);
+        Map map = new HashMap<>();
+        map.put("sccInf",sccInf);
+        map.put("company",company.get(0).getScyName());
+        return AjaxResult.success(map);
+    }
+    /**
+     * 新增对公账户
+     */
+    @PreAuthorize(hasPermi = "accInf:accInf:add")
+    @Log(title = "对公账户", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public R add(@RequestBody Map<String,Object> map) throws Exception {
+        //获取当前操作人员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        //账号
+        String paiAccno = CommonUtil.objToString(map.get("paiAccno"));
+        if(CommonUtil.isEmpty(paiAccno)){
+            return R.fail("账号卡号不可为空");
+        }
+        LambdaQueryWrapper<PayAccInf> payAccInf = new LambdaQueryWrapper();
+        payAccInf.eq(PayAccInf::getPaiAccno,paiAccno);
+        payAccInf.eq(PayAccInf::getPaiStatus,"2");
+        List<PayAccInf> sccInf = payAccInfService.findPayAccInfs(payAccInf);
+        if(sccInf.size()>0){
+            return R.fail("当前账号卡号已存在");
+        }
+        //开户银行
+        String paiBankName = CommonUtil.objToString(map.get("paiBankName"));
+        if(CommonUtil.isEmpty(paiBankName)){
+            return R.fail("开户银行不可为空");
+        }
+        //分支行
+        String paiQlbankname = CommonUtil.objToString(map.get("paiQlbankname"));
+        if(CommonUtil.isEmpty(paiQlbankname)){
+            return R.fail("分支行不可为空");
+        }
+        //查询行号
+        LambdaQueryWrapper<ZcCfcaBankInf> zccfcaBank = new LambdaQueryWrapper();
+        zccfcaBank.eq(ZcCfcaBankInf::getZcbiBankName,paiBankName);
+        List<ZcCfcaBankInf> cfcaBank = zcCfcaBankInfService.findZcCfcaBankInfs(zccfcaBank);
+        if(cfcaBank.size()==0){
+            throw new Exception("获取行号失败,请联系管理员");
+        }
+        //账户名称
+        String paiAccnoName = CommonUtil.objToString(map.get("paiAccnoName"));
+        PayAccInf payAccInf1 =new PayAccInf();
+        String  paiId  =  IdUtils.fastSimpleUUID();
+        payAccInf1.setPaiId(paiId);
+        payAccInf1.setPaiCstno(use.getCompanyId());
+        payAccInf1.setPaiAccno(paiAccno);
+        payAccInf1.setPaiStatus("2");
+        payAccInf1.setPaiBalance("0.00");
+        payAccInf1.setPaiAvabalance("0.00");
+        payAccInf1.setPaiAcctype("00");
+        payAccInf1.setPaiCrytype("CNY");
+        payAccInf1.setPaiQlbankno(cfcaBank.get(0).getZcbiBankNo());
+        payAccInf1.setPaiQlbankname(paiQlbankname);
+        payAccInf1.setPaiAccnoName(paiAccnoName);
+        payAccInf1.setPaiBankName(paiBankName);
+        payAccInfService.createPayAccInf(payAccInf1);
+        return R.ok();
+    }
+    /**
+     * 修改对公账户
+     */
+    @PreAuthorize(hasPermi = "accInf:accInf:edit")
+    @Log(title = "对公账户", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public R edit(@RequestBody Map<String,Object> map)
+    {
+        //获取当前操作人员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        //账号
+        String paiAccno = CommonUtil.objToString(map.get("paiAccno"));
+        if(CommonUtil.isEmpty(paiAccno)){
+            return R.fail("账号卡号不可为空");
+        }
+        LambdaQueryWrapper<PayAccInf> payAccInf = new LambdaQueryWrapper();
+        payAccInf.eq(PayAccInf::getPaiAccno,paiAccno);
+        payAccInf.ne(PayAccInf::getPaiCstno,use.getCompanyId());
+        payAccInf.eq(PayAccInf::getPaiStatus,"2");
+        List<PayAccInf> sccInf = payAccInfService.findPayAccInfs(payAccInf);
+        if(sccInf.size()>0){
+            return R.fail("当前账号卡号已存在");
+        }
+        //开户银行
+        String paiBankName = CommonUtil.objToString(map.get("paiBankName"));
+        if(CommonUtil.isEmpty(paiBankName)){
+            return R.fail("开户银行不可为空");
+        }
+        //分支行
+        String paiQlbankname = CommonUtil.objToString(map.get("paiQlbankname"));
+        if(CommonUtil.isEmpty(paiQlbankname)){
+            return R.fail("分支行不可为空");
+        }
+        //账户名称
+        String paiAccnoName = CommonUtil.objToString(map.get("paiAccnoName"));
+        //主键
+        String paiId = CommonUtil.objToString(map.get("paiId"));
+        PayAccInf payAccInf1 =new PayAccInf();
+        payAccInf1.setPaiId(paiId);
+        payAccInf1.setPaiAccno(paiAccno);
+        payAccInf1.setPaiQlbankname(paiQlbankname);
+        payAccInf1.setPaiAccnoName(paiAccnoName);
+        payAccInf1.setPaiBankName(paiBankName);
+        payAccInfService.updatePayAccInf(payAccInf1);
+        return R.ok();
+    }
+    /**
+     * 删除对公账户
+     */
+    @PreAuthorize(hasPermi = "accInf:accInf:delete")
+    @Log(title = "对公账户", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{paiId}")
+    public R delete(@PathVariable("paiId") String paiId)
+    {
+        //获取当前操作人员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        PayAccInf payAccInf1 =new PayAccInf();
+        payAccInf1.setPaiId(paiId);
+        payAccInf1.setPaiStatus("1");
+        payAccInf1.setCreateBy(use.getUserId()+"");
+        payAccInf1.setCreateTime(new Date());
+        payAccInfService.updatePayAccInf(payAccInf1);
+        return R.ok();
+    }
+
+    /**
+     * 查询银行
+     *
+     * @return
+     */
+    @PostMapping("/queryBank")
+    public R queryBank(String pbaiBankName,QueryRequest request) throws Exception {
+        //查询账户
+        LambdaQueryWrapper<ZcCfcaBankInf> bank = new LambdaQueryWrapper<>();
+        //所属银行
+        if(CommonUtil.isNotEmpty(pbaiBankName)){
+            bank.like(ZcCfcaBankInf::getZcbiBankName,pbaiBankName);
+        }
+        IPage<ZcCfcaBankInf> bankAcc = zcCfcaBankInfService.findZcCfcaBankInfs(request, bank);
+        return R.ok(bankAcc);
+    }
+    /**
+     * 查询银行
+     *
+     * @return
+     */
+    @PostMapping("/queryCard")
+    public R queryCard(QueryRequest request) throws Exception {
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        //查询账户
+        LambdaQueryWrapper<PayAccInf> accInf = new LambdaQueryWrapper<>();
+        accInf.like(PayAccInf::getPaiCstno,use.getCompanyId());
+        IPage<PayAccInf> bankAcc = payAccInfService.findPayAccInfs(request, accInf);
+        return R.ok(bankAcc);
+    }
+}

+ 21 - 3
tianhu-system/src/main/java/com/tianhu/system/domain/PayAccInf.java

@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author cuixq
- * @since 2021-09-23
+ * @since 2021-10-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -28,7 +28,7 @@ public class PayAccInf implements Serializable {
     /**
      * 企业ID(sys_company.scy_id)
      */
-    @TableId("PAI_CSTNO")
+    @TableField("PAI_CSTNO")
     private String paiCstno;
 
     /**
@@ -62,7 +62,7 @@ public class PayAccInf implements Serializable {
     private String paiAvabalance;
 
     /**
-     * 账户类型(00基本账户01贷款账户02信用账户03手续费账户04待结算账户05提现账户06邢台银行虚拟账户)
+     * 账户类型(00基本账户01一般账户02信用账户03手续费账户04待结算账户05提现账户06虚拟账户07:公共计息账户08:资金初始化账户09:公共调账账户)
      */
     @TableField("PAI_ACCTYPE")
     private String paiAcctype;
@@ -109,5 +109,23 @@ public class PayAccInf implements Serializable {
     @TableField("update_time")
     private Date updateTime;
 
+    /**
+     * 账户名称
+     */
+    @TableField("pai_accno_name")
+    private String paiAccnoName;
+
+    /**
+     * 银行名称
+     */
+    @TableField("pai_bank_name")
+    private String paiBankName;
+
+    /**
+     * 主键
+     */
+    @TableId("pai_id")
+    private String paiId;
+
 
 }

+ 4 - 1
tianhu-system/src/main/resources/mapper/system/PayAccInfMapper.xml

@@ -4,7 +4,8 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.tianhu.system.domain.PayAccInf">
-        <id column="PAI_CSTNO" property="paiCstno" />
+        <id column="pai_id" property="paiId" />
+        <result column="PAI_CSTNO" property="paiCstno" />
         <result column="PAI_ACCNO" property="paiAccno" />
         <result column="PAI_VERSION" property="paiVersion" />
         <result column="PAI_STATUS" property="paiStatus" />
@@ -18,6 +19,8 @@
         <result column="create_time" property="createTime" />
         <result column="update_by" property="updateBy" />
         <result column="update_time" property="updateTime" />
+        <result column="pai_accno_name" property="paiAccnoName" />
+        <result column="pai_bank_name" property="paiBankName" />
     </resultMap>
 
 </mapper>