Przeglądaj źródła

融资产品,合同,后台代码迭代

ch 3 lat temu
rodzic
commit
b67c2a51be

+ 12 - 0
sc-service/src/main/java/com/huyi/service/base/entity/ZcFinanceProduct.java

@@ -44,6 +44,18 @@ public class ZcFinanceProduct implements Serializable {
     private String zfpName;
 
     /**
+     * 融资产品类型
+     */
+    @TableField("zfp_type")
+    private String zfpType;
+
+    /**
+     * 签署意愿类型
+     */
+    @TableField("zfp_auth_type")
+    private String zfpAuthType;
+
+    /**
      * 资方(sys_company.scy_id)
      */
     @TableField("zfp_management_id")

+ 338 - 0
sc-service/src/main/java/com/huyi/service/contract/controller/ContractControllers.java

@@ -0,0 +1,338 @@
+package com.huyi.service.contract.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huyi.service.base.entity.*;
+import com.huyi.service.base.service.IPubFileInfService;
+import com.huyi.service.base.service.IZcFinanceContractService;
+import com.huyi.service.base.service.IZcFinanceProConRelService;
+import com.huyi.service.base.service.IZcFinanceQuotaConRelService;
+import com.huyi.service.contract.service.IOwnContractService;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.DateUtils;
+import com.tianhu.common.core.utils.IdUtils;
+import com.tianhu.common.core.web.controller.BaseController;
+import com.tianhu.common.core.web.domain.AjaxResult;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 合同controller
+ *
+ * @author ch
+ * @date 2021-8-20
+ */
+
+@RestController
+@RequestMapping("/contract")
+public class ContractControllers extends BaseController {
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private IOwnContractService ownContractService;
+    @Autowired
+    private IZcFinanceContractService zcFinanceContractService;
+    @Autowired
+    private IZcFinanceProConRelService zcFinanceProConRelService;
+    @Autowired
+    private IZcFinanceQuotaConRelService zcFinanceQuotaConRelService;
+    @Autowired
+    private IPubFileInfService pubFileInfService;
+
+    @GetMapping("/list")
+    public AjaxResult list(String zfcName, String scyName,String zfcSubject , String zfcStatus, QueryRequest request) {
+        //查询当前操作员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        //获取企业
+//        String companyId = use.getCompanyId();
+        Map map = new HashMap(16);
+//        if(CommonUtil.isNotEmpty(companyId)){
+//            map.put("companyId",companyId);
+//        }
+        //合同模板名称
+        if(CommonUtil.isNotEmpty(zfcName)){
+            map.put("zfcName",zfcName);
+        }
+        //资方
+        if(CommonUtil.isNotEmpty(scyName)){
+            map.put("scyName",scyName);
+        }
+        //合同状态
+        if(CommonUtil.isNotEmpty(zfcStatus)){
+            map.put("zfcStatus",zfcStatus);
+        }
+        //签署主体
+        if(CommonUtil.isNotEmpty(zfcSubject)){
+            map.put("zfcSubject",zfcSubject);
+        }
+        IPage<Map> list = ownContractService.selectContractList(map,request);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询合同详情
+     * @param zfcId
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:contract:query")
+    @GetMapping(value = "/{zfcId}")
+    public AjaxResult getInfo(@PathVariable("zfcId") String zfcId)
+    {
+        ZcFinanceContract zcFinanceContract = zcFinanceContractService.getById(zfcId);
+        Map map = new HashMap(16);
+        map.put("zcFinanceContract",zcFinanceContract);
+        String zfcFile = zcFinanceContract.getZfcFile();
+        PubFileInf pubFileInf = pubFileInfService.getById(zfcFile);
+        if(pubFileInf !=null){
+            String fileUrl = pubFileInf.getPfiUrl();
+            String fileId = pubFileInf.getPfiFileId();
+            String fileName = pubFileInf.getPfiFileName();
+            map.put("fileUrl",fileUrl);
+            map.put("fileId",fileId);
+            map.put("fileName",fileName);
+        }
+        return AjaxResult.success(map);
+    }
+
+    @PreAuthorize(hasPermi = "service:contract:add")
+    @Log(title = "合同", businessType = BusinessType.INSERT)
+    @Transactional(rollbackFor=Exception.class)
+    @PostMapping
+    public AjaxResult add(@RequestBody Map<String,Object> map) throws Exception {
+        //获取当前用户
+        LoginUser userInf = tokenService.getLoginUser();
+        String user = CommonUtil.objToString(userInf.getSysUser().getUserId());
+        //合同模板名称
+        String zfcName = CommonUtil.objToString(map.get("zfcName"));
+        if(CommonUtil.isEmpty(zfcName)){
+            return AjaxResult.error("合同模板名称不能为空");
+        }
+        //合同类型
+        String zfcType = CommonUtil.objToString(map.get("zfcType"));
+        if(CommonUtil.isEmpty(zfcType)){
+            return AjaxResult.error("请选择合同类型");
+        }
+        //资金方
+        String zfcManagementId = CommonUtil.objToString(map.get("zfcManagementId"));
+        if(CommonUtil.isEmpty(zfcManagementId)){
+
+            return AjaxResult.error("请选择资金方");
+        }
+        //签署主体
+        String zfcSubject = CommonUtil.objToString(map.get("zfcSubject"));
+        if(CommonUtil.isEmpty(zfcSubject)){
+            return AjaxResult.error("请选择签署主体");
+        }
+        //签署节点
+        String zfcNode = CommonUtil.objToString(map.get("zfcNode"));
+        if(CommonUtil.isEmpty(zfcNode)){
+            return AjaxResult.error("请选择签署节点");
+        }
+        //合同描述
+        String zfcDesc = CommonUtil.objToString(map.get("zfcDesc"));
+        //合同状态
+        String zfcStatus = "00";
+        //附件url
+        List<Map<String, String>> file = (List<Map<String, String>>) map.get("zfcFile");
+        if(file.size() == 0){
+            return AjaxResult.error("请上传附件");
+        }
+        String zfcFile="";
+        String zfcFileId = "";
+        if(file.size()>0) {
+            for (int j = 0; j < file.size(); j++) {
+                Map<String, String> fileUrl = file.get(j);
+                if (j == 0) {
+                    zfcFile = fileUrl.get("url");
+                    zfcFileId = CommonUtil.objToString(fileUrl.get("uid"));
+                } else {
+                    zfcFile += "," + fileUrl.get("url");
+                    zfcFileId += "," + CommonUtil.objToString(fileUrl.get("uid"));
+                }
+            }
+        }
+        //截取符合要求的附件url
+        if (CommonUtil.isNotEmpty(zfcFile)) {
+            zfcFile = zfcFile.substring(0,zfcFile.indexOf("getBytes/")+41);
+        }
+        //主键
+        String zfcId = IdUtils.fastUUID();
+        //新增合同信息
+        ZcFinanceContract zcFinanceContract = new ZcFinanceContract();
+        zcFinanceContract.setZfcId(zfcId);
+        zcFinanceContract.setZfcName(zfcName);
+        zcFinanceContract.setZfcType(zfcType);
+        zcFinanceContract.setZfcSubject(zfcSubject);
+        zcFinanceContract.setZfcManagementId(zfcManagementId);
+        zcFinanceContract.setZfcNode(zfcNode);
+        zcFinanceContract.setZfcDesc(zfcDesc);
+        zcFinanceContract.setZfcStatus(zfcStatus);
+        zcFinanceContract.setZfcFile(zfcFileId);
+        zcFinanceContract.setCreateBy(user);
+        zcFinanceContract.setCreateTime(DateUtils.getNowDate());
+        zcFinanceContractService.createZcFinanceContract(zcFinanceContract);
+        return AjaxResult.success();
+    }
+    /**
+     * 修改合同信息
+     */
+    @PreAuthorize(hasPermi = "service:contract:edit")
+    @Log(title = "合同信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Map map)throws Exception {
+        //获取当前用户
+        LoginUser userInf = tokenService.getLoginUser();
+        String user = CommonUtil.objToString(userInf.getSysUser().getUserId());
+        //合同模板名称
+        String zfcName = CommonUtil.objToString(map.get("zfcName"));
+        if(CommonUtil.isEmpty(zfcName)){
+            return AjaxResult.error("合同模板名称不能为空");
+        }
+        //合同类型
+        String zfcType = CommonUtil.objToString(map.get("zfcType"));
+        if(CommonUtil.isEmpty(zfcType)){
+            return AjaxResult.error("请选择合同类型");
+        }
+        //资金方
+        String zfcManagementId = CommonUtil.objToString(map.get("zfcManagementId"));
+        if(CommonUtil.isEmpty(zfcManagementId)){
+            return AjaxResult.error("请选择资金方");
+        }
+        //签署主体
+        String zfcSubject = CommonUtil.objToString(map.get("zfcSubject"));
+        if(CommonUtil.isEmpty(zfcSubject)){
+            return AjaxResult.error("请选择签署主体");
+        }
+        //签署节点
+        String zfcNode = CommonUtil.objToString(map.get("zfcNode"));
+        if(CommonUtil.isEmpty(zfcNode)){
+            return AjaxResult.error("请选择签署节点");
+        }
+        //合同描述
+        String zfcDesc = CommonUtil.objToString(map.get("zfcDesc"));
+        //合同状态
+        String zfcStatus = CommonUtil.objToString(map.get("zfcStatus"));
+        //附件url
+        List<Map<String, String>> file = (List<Map<String, String>>) map.get("zfcFile");
+        if(file.size() == 0){
+            return AjaxResult.error("请上传附件");
+        }
+        String zfcFile="";
+        String zfcFileId = "";
+        if(file.size()>0) {
+            for (int j = 0; j < file.size(); j++) {
+                Map<String, String> fileUrl = file.get(j);
+                if (j == 0) {
+                    zfcFile = fileUrl.get("url");
+                    zfcFileId = CommonUtil.objToString(fileUrl.get("uid"));
+                } else {
+                    zfcFile += "," + fileUrl.get("url");
+                    zfcFileId += "," + CommonUtil.objToString(fileUrl.get("uid"));
+                }
+            }
+        }
+        //截取符合要求的附件url
+//        if (CommonUtil.isNotEmpty(zfcFile)) {
+//            zfcFile = zfcFile.substring(0,zfcFile.indexOf("getBytes/")+41);
+//        }
+        //主键
+        String zfcId = IdUtils.fastUUID();
+        //新增合同信息
+        ZcFinanceContract zcFinanceContract = new ZcFinanceContract();
+        zcFinanceContract.setZfcId(zfcId);
+        zcFinanceContract.setZfcName(zfcName);
+        zcFinanceContract.setZfcType(zfcType);
+        zcFinanceContract.setZfcSubject(zfcSubject);
+        zcFinanceContract.setZfcManagementId(zfcManagementId);
+        zcFinanceContract.setZfcNode(zfcNode);
+        zcFinanceContract.setZfcDesc(zfcDesc);
+        zcFinanceContract.setZfcStatus(zfcStatus);
+        zcFinanceContract.setZfcFile(zfcFileId);
+        zcFinanceContract.setUpdateBy(user);
+        zcFinanceContract.setUpdateTime(DateUtils.getNowDate());
+        zcFinanceContractService.updateZcFinanceContract(zcFinanceContract);
+        return AjaxResult.success();
+    }
+    /**
+     * 修改合同启用状态
+     * @param zfcId
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:contract:change")
+    @Log(title = "合同状态", businessType = BusinessType.UPDATE)
+    @PutMapping("/change/{zfcId}")
+    public AjaxResult changState(@PathVariable String zfcId){
+        //查询产品原状态
+        ZcFinanceContract zcFinanceContract =  zcFinanceContractService.getById(zfcId);
+        String state = zcFinanceContract.getZfcStatus();
+        //如果是启用改为停用
+        if("01".equals(state)){
+            //查询合同是否关联产品
+            LambdaQueryWrapper<ZcFinanceProConRel> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(ZcFinanceProConRel::getZfpcrContractId,zfcId);
+            int count = zcFinanceProConRelService.count(queryWrapper);
+            //查询合同是否关联授信
+            LambdaQueryWrapper<ZcFinanceQuotaConRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(ZcFinanceQuotaConRel::getZfqcrContractId,zfcId);
+            int count1 = zcFinanceQuotaConRelService.count(lambdaQueryWrapper);
+            //若已关联提示不可停用
+            if(count > 0 || count1 > 0){
+                return AjaxResult.error("合同已被使用,不可停用!");
+            }else {
+                zcFinanceContract.setZfcStatus("00");
+            }
+        }else {
+            //反之改为启用
+            zcFinanceContract.setZfcStatus("01");
+        }
+        //执行修改
+        zcFinanceContractService.updateZcFinanceContract(zcFinanceContract);
+        return AjaxResult.success();
+    }
+    /**
+     * 删除合同
+     * @param zfcId
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:contract:delete")
+    @Log(title = "合同删除", businessType = BusinessType.UPDATE)
+    @DeleteMapping("/{zfcId}")
+    public AjaxResult delete(@PathVariable String zfcId){
+        //查询产品原状态
+        ZcFinanceContract zcFinanceContract =  zcFinanceContractService.getById(zfcId);
+        //查询合同是否关联产品
+        LambdaQueryWrapper<ZcFinanceProConRel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ZcFinanceProConRel::getZfpcrContractId,zfcId);
+        int count = zcFinanceProConRelService.count(queryWrapper);
+        //查询合同是否关联授信
+        LambdaQueryWrapper<ZcFinanceQuotaConRel> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(ZcFinanceQuotaConRel::getZfqcrContractId,zfcId);
+        int count1 = zcFinanceQuotaConRelService.count(lambdaQueryWrapper);
+        //若已关联提示不可停用
+        if(count > 0 || count1 > 0){
+            return AjaxResult.error("合同已被使用,不可删除!");
+        }else {
+            zcFinanceContract.setZfcStatus("02");
+        }
+        //执行修改
+        zcFinanceContractService.updateZcFinanceContract(zcFinanceContract);
+        return AjaxResult.success();
+    }
+
+}

+ 32 - 0
sc-service/src/main/java/com/huyi/service/contract/mapper/OwnContractMapper.java

@@ -0,0 +1,32 @@
+package com.huyi.service.contract.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+/**
+ * 合同Mapper接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface OwnContractMapper
+{
+
+    /**
+     * 查询合同列表
+     * @param page
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectContractList(Page<Map> page, @Param("paramMap") Map map);
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    public Map selectUserName(Map map);
+}

+ 32 - 0
sc-service/src/main/java/com/huyi/service/contract/service/IOwnContractService.java

@@ -0,0 +1,32 @@
+package com.huyi.service.contract.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+
+import java.util.Map;
+
+/**
+ * 合同Service接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface IOwnContractService
+{
+    /**
+     * 查询合同列表
+     * @param request
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectContractList(Map map, QueryRequest request);
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    public Map selectUserName(Map map);
+
+}

+ 47 - 0
sc-service/src/main/java/com/huyi/service/contract/service/impl/OwnContractServiceImpl.java

@@ -0,0 +1,47 @@
+package com.huyi.service.contract.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huyi.service.contract.mapper.OwnContractMapper;
+import com.huyi.service.contract.service.IOwnContractService;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * 合同Service业务层处理
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+@Service
+public class OwnContractServiceImpl implements IOwnContractService
+{
+    @Autowired
+    private OwnContractMapper ownContractMapper;
+
+    /**
+     * 查询合同列表
+     * @param map
+     * @param request
+     * @return
+     */
+    @Override
+    public IPage<Map> selectContractList(Map map,QueryRequest request){
+        Page page = new Page(request.getPageNum(),request.getPageSize());
+        return ownContractMapper.selectContractList(page,map);
+    }
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    @Override
+    public Map selectUserName(Map map) {
+        return ownContractMapper.selectUserName(map);
+    }
+
+}

+ 479 - 0
sc-service/src/main/java/com/huyi/service/financeProduct/controller/FinanceProductControllers.java

@@ -0,0 +1,479 @@
+package com.huyi.service.financeProduct.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huyi.service.base.entity.ZcFinanceContract;
+import com.huyi.service.base.entity.ZcFinanceProComRel;
+import com.huyi.service.base.entity.ZcFinanceProConRel;
+import com.huyi.service.base.entity.ZcFinanceProduct;
+import com.huyi.service.base.service.IZcFinanceContractService;
+import com.huyi.service.base.service.IZcFinanceProComRelService;
+import com.huyi.service.base.service.IZcFinanceProConRelService;
+import com.huyi.service.base.service.IZcFinanceProductService;
+import com.huyi.service.financeProduct.service.IOwnFinanceProductService;
+import com.keao.tianhu.core.entity.R;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.DateUtils;
+import com.tianhu.common.core.utils.IdUtils;
+import com.tianhu.common.core.utils.StringUtils;
+import com.tianhu.common.core.web.controller.BaseController;
+import com.tianhu.common.core.web.domain.AjaxResult;
+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 org.checkerframework.checker.units.qual.C;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 融资产品controller
+ *
+ * @author ch
+ * @date 2021-8-16
+ */
+
+@RestController
+@RequestMapping("/financeProduct")
+public class FinanceProductControllers extends BaseController {
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private IOwnFinanceProductService ownFinanceProductService;
+    @Autowired
+    private IZcFinanceProConRelService zcFinanceProConRelService;
+    @Autowired
+    private IZcFinanceProductService zcFinanceProductService;
+    @Autowired
+    private IZcFinanceProComRelService zcFinanceProComRelService;
+    @Autowired
+    private IZcFinanceContractService zcFinanceContractService;
+
+    @GetMapping("/list")
+    public AjaxResult list(String zfpName, String scyName, String begin,String end, QueryRequest request) {
+        //查询当前操作员
+        LoginUser userInfo = tokenService.getLoginUser();
+        SysUser use = userInfo.getSysUser();
+        //获取企业
+//        String companyId = use.getCompanyId();
+        Map map = new HashMap(16);
+//        if(CommonUtil.isNotEmpty(companyId)){
+//            map.put("companyId",companyId);
+//        }
+        //产品名称
+        if(CommonUtil.isNotEmpty(zfpName)){
+            map.put("zfpName",zfpName);
+        }
+        //资方
+        if(CommonUtil.isNotEmpty(scyName)){
+            map.put("scyName",scyName);
+        }
+//        if(CommonUtil.isNotEmpty(begin) && CommonUtil.isNotEmpty(end)){
+//            if(CommonUtil.compare(begin,end) ==1){
+//                return AjaxResult.error("请输入正确的最短账期范围");
+//            }
+//        }
+        //最短账期范围
+        if(CommonUtil.isNotEmpty(begin)){
+            map.put("begin",CommonUtil.objToBigDecimal(begin));
+        }
+        //最短账期范围
+        if(CommonUtil.isNotEmpty(end)){
+            map.put("end",CommonUtil.objToBigDecimal(end));
+        }
+        IPage<Map> list = ownFinanceProductService.selectFinanceProductList(map,request);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 获取融资产品信息详细信息
+     */
+    @PreAuthorize(hasPermi = "service:financeProduct:query")
+    @GetMapping(value = "/{zfpId}")
+    public AjaxResult getInfo(@PathVariable("zfpId") String zfpId)
+    {
+        Map map = new HashMap();
+        map.put("zfpId",zfpId);
+        Map resultMap = ownFinanceProductService.selectUserName(map);
+        ZcFinanceProduct zcFinanceProduct = zcFinanceProductService.getById(zfpId);
+        resultMap.put("zcFinanceProduct",zcFinanceProduct);
+        //授信合同信息
+        LambdaQueryWrapper<ZcFinanceProConRel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ZcFinanceProConRel::getZfpcrProductId,zfpId);
+        List<ZcFinanceProConRel> zcFinanceProConRel = zcFinanceProConRelService.findZcFinanceProConRels(queryWrapper);
+        List id = new ArrayList();
+        for (int i = 0; i < zcFinanceProConRel.size(); i++) {
+            String contractId = zcFinanceProConRel.get(i).getZfpcrContractId();
+            id.add(contractId);
+        }
+        if (id.size() > 0) {
+            LambdaQueryWrapper<ZcFinanceContract> contractWrapper = new LambdaQueryWrapper<>();
+            contractWrapper.in(ZcFinanceContract::getZfcId, id);
+            List<ZcFinanceContract> contractList = zcFinanceContractService.findZcFinanceContracts(contractWrapper);
+            resultMap.put("contractList1",contractList);
+        }
+        return AjaxResult.success(resultMap);
+    }
+
+    /**
+     * 新增融资产品
+     * @param map
+     * @return
+     * @throws Exception
+     */
+    @PreAuthorize(hasPermi = "service:financeProduct:add")
+    @Log(title = "融资产品", businessType = BusinessType.INSERT)
+    @Transactional(rollbackFor=Exception.class)
+    @PostMapping
+    public AjaxResult add(@RequestBody Map<String,Object> map) throws Exception {
+        //获取当前用户
+        LoginUser userInf = tokenService.getLoginUser();
+        String user = CommonUtil.objToString(userInf.getSysUser().getUserId());
+        //创建融资产品对象
+        ZcFinanceProduct zcFinanceProduct = new ZcFinanceProduct();
+        //产品名称
+        String zfpName = CommonUtil.objToString(map.get("zfpName"));
+        if(CommonUtil.isEmpty(zfpName)){
+            return AjaxResult.error("产品名称不能为空");
+        }
+        //产品类型
+        String zfpType = CommonUtil.objToString(map.get("zfpType"));
+        //经办人意愿方式
+        String zfpAuthType = CommonUtil.objToString(map.get("zfpAuthType"));
+        //资方
+        String zfpManagementId = CommonUtil.objToString(map.get("zfpManagementId"));
+        if(CommonUtil.isEmpty(zfpManagementId)){
+            return AjaxResult.error("资金方不能为空");
+        }
+        //是否可拆转融
+        String zfpSplit = CommonUtil.objToString(map.get("zfpSplit"));
+        if(CommonUtil.isEmpty(zfpSplit)){
+            return AjaxResult.error("请选择是否可拆转融(二期处理)");
+        }
+        //最小融资金额
+        String zfpMinimumAmount = CommonUtil.objToString(map.get("zfpMinimumAmount"));
+        if(CommonUtil.isEmpty(zfpMinimumAmount)){
+            return AjaxResult.error("最小融资金额不能为空");
+        }
+        //最短融资账期
+        String zfpShortestPeriod = CommonUtil.objToString(map.get("zfpShortestPeriod"));
+        if(CommonUtil.isEmpty(zfpShortestPeriod)){
+            return AjaxResult.error("最短融资账期不能为空");
+        }else{
+            if(CommonUtil.compare(zfpShortestPeriod,"14") == -1){
+                return AjaxResult.error("最短融资账期最短14天");
+            }
+        }
+        //服务费是否可退
+        String zfpCharge = CommonUtil.objToString(map.get("zfpCharge"));
+        if(CommonUtil.isEmpty(zfpCharge)){
+            return AjaxResult.error("请选择服务费是否可退");
+        }
+        //是否有追索权
+        String zfpRecourse = CommonUtil.objToString(map.get("zfpRecourse"));
+        if(CommonUtil.isEmpty(zfpRecourse)){
+            return AjaxResult.error("请选择是否有追索权");
+        }
+        //电子凭证类型
+        String zfpVoucherType = CommonUtil.objToString(map.get("zfpVoucherType"));
+        if(CommonUtil.isEmpty(zfpVoucherType)){
+            return AjaxResult.error("电子凭证类型不能为空");
+        }
+        //是否需核心企业开户
+        String zfpCoreAccount = CommonUtil.objToString(map.get("zfpCoreAccount"));
+        if(CommonUtil.isEmpty(zfpCoreAccount)){
+            return AjaxResult.error("请选择是否需核心企业开户");
+        }
+        //是否需融资企业开户
+        String supplierAccount = CommonUtil.objToString(map.get("zfpSupplierAccount"));
+        if(CommonUtil.isEmpty(zfpCoreAccount)){
+            return AjaxResult.error("请选择是否需融资企业开户");
+        }
+        //记账簿托管方式
+        String zfpBookkeeping = CommonUtil.objToString(map.get("zfpBookkeeping"));
+        if(CommonUtil.isEmpty(zfpBookkeeping)){
+            return AjaxResult.error("记账簿托管方式不能为空");
+        }
+        //是否支持部分融资
+        String zfpPart = CommonUtil.objToString(map.get("zfpPart"));
+        if(CommonUtil.isEmpty(zfpPart)){
+            return AjaxResult.error("请选择是否支持部分融资");
+        }
+        //融资到期方式
+        String zfpExpire = CommonUtil.objToString(map.get("zfpExpire"));
+        //资方融资费率
+        String zfpRate = CommonUtil.objToString(map.get("zfpRate"));
+        //资方是否支持返佣
+        String zfpProfit = CommonUtil.objToString(map.get("zfpProfit"));
+        //资方返佣方式
+        String zfpProfitType = CommonUtil.objToString(map.get("zfpProfitType"));
+        //资方返佣费率
+        String zfpProfitRate = CommonUtil.objToString(map.get("zfpProfitRate"));
+        //是否需平台审批
+        String zfpPlatform = CommonUtil.objToString(map.get("zfpPlatform"));
+        //主键
+        String zfpId = IdUtils.fastUUID();
+        //创建时间
+        String createTime = DateUtils.dateTimeNow();
+        //产品编号
+        String zfpNumber = "";
+        if("0".equals(zfpType)){
+            zfpNumber += "F";
+        }else {
+            zfpNumber += "L";
+        }
+        if("0".equals(zfpPlatform)){
+            zfpNumber += "P";
+        }else {
+            zfpNumber += "A";
+        }
+        zfpNumber += createTime;
+        //合同信息
+        List<Map<String, String>> tableData = (List<Map<String, String>>) map.get("contractList");
+//        if (tableData.size() == 0 ){
+//            return AjaxResult.error("请选择合同");
+//        }
+        //新增融资产品合同关联表
+        for (int i = 0; i < tableData.size(); i++) {
+            String zfcId = tableData.get(i).get("zfcId");
+            ZcFinanceProConRel zcFinanceProConRel = new ZcFinanceProConRel();
+            zcFinanceProConRel.setZfpcrProductId(zfpId);
+            zcFinanceProConRel.setZfpcrProductId(zfcId);
+            zcFinanceProConRelService.createZcFinanceProConRel(zcFinanceProConRel);
+        }
+        //新增融资产品字段
+        zcFinanceProduct.setZfpId(zfpId);
+        zcFinanceProduct.setZfpNumber(zfpNumber);
+        zcFinanceProduct.setZfpName(zfpName);
+        zcFinanceProduct.setZfpType(zfpType);
+        zcFinanceProduct.setZfpAuthType(zfpAuthType);
+        //产品状态 01:启用 00:停用
+        zcFinanceProduct.setZfpStatus("01");
+        zcFinanceProduct.setZfpManagementId(zfpManagementId);
+        zcFinanceProduct.setZfpSplit(zfpSplit);
+        zcFinanceProduct.setZfpMinimumAmount(zfpMinimumAmount);
+        zcFinanceProduct.setZfpShortestPeriod(zfpShortestPeriod);
+        zcFinanceProduct.setZfpCharge(zfpCharge);
+        zcFinanceProduct.setZfpRecourse(zfpRecourse);
+        zcFinanceProduct.setZfpVoucherType(zfpVoucherType);
+        zcFinanceProduct.setZfpCoreAccount(zfpCoreAccount);
+        zcFinanceProduct.setZfpSupplierAccount(supplierAccount);
+        zcFinanceProduct.setZfpBookkeeping(zfpBookkeeping);
+        zcFinanceProduct.setZfpPart(zfpPart);
+        zcFinanceProduct.setZfpExpire(zfpExpire);
+        zcFinanceProduct.setZfpRate(zfpRate);
+        zcFinanceProduct.setZfpProfit(zfpProfit);
+        zcFinanceProduct.setZfpProfitType(zfpProfitType);
+        zcFinanceProduct.setZfpProfitRate(zfpProfitRate);
+        zcFinanceProduct.setZfpPlatform(zfpPlatform);
+        zcFinanceProduct.setCreateTime(DateUtils.getNowDate());
+        zcFinanceProduct.setCreateBy(user);
+        zcFinanceProductService.createZcFinanceProduct(zcFinanceProduct);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 修改融资产品信息
+     */
+    @PreAuthorize(hasPermi = "service:financeProduct:edit")
+    @Log(title = "融资产品信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Map map)throws Exception
+    {
+        //获取当前用户
+        LoginUser userInf = tokenService.getLoginUser();
+        String user = CommonUtil.objToString(userInf.getSysUser().getUserId());
+        //产品编号
+        String zfpNumber = CommonUtil.objToString(map.get("zfpNumber"));
+        if(CommonUtil.isEmpty(zfpNumber)){
+            return AjaxResult.error("产品编号不能为空");
+        }
+        //编号原时间戳
+        String time = zfpNumber.substring(2);
+        //产品名称
+        String zfpName = CommonUtil.objToString(map.get("zfpName"));
+        if(CommonUtil.isEmpty(zfpName)){
+            return AjaxResult.error("产品名称不能为空");
+        }
+        //资方
+        String zfpManagementId = CommonUtil.objToString(map.get("zfpManagementId"));
+        if(CommonUtil.isEmpty(zfpManagementId)){
+            return AjaxResult.error("资金方不能为空");
+        }
+        //是否可拆转融
+        String zfpSplit = CommonUtil.objToString(map.get("zfpSplit"));
+        if(CommonUtil.isEmpty(zfpSplit)){
+            return AjaxResult.error("请选择是否可拆转融(二期处理)");
+        }
+        //产品类型
+        String zfpType = CommonUtil.objToString(map.get("zfpType"));
+        //经办人意愿方式
+        String zfpAuthType = CommonUtil.objToString(map.get("zfpAuthType"));
+        //最小融资金额
+        String zfpMinimumAmount = CommonUtil.objToString(map.get("zfpMinimumAmount"));
+        if(CommonUtil.isEmpty(zfpMinimumAmount)){
+            return AjaxResult.error("最小融资金额不能为空");
+        }
+        //最短融资账期
+        String zfpShortestPeriod = CommonUtil.objToString(map.get("zfpShortestPeriod"));
+        if(CommonUtil.isEmpty(zfpShortestPeriod)){
+            return AjaxResult.error("最短融资账期不能为空");
+        }else{
+            if(CommonUtil.compare(zfpShortestPeriod,"14") == -1){
+                return AjaxResult.error("最短融资账期最短14天");
+            }
+        }
+        //服务费是否可退
+        String zfpCharge = CommonUtil.objToString(map.get("zfpCharge"));
+        if(CommonUtil.isEmpty(zfpCharge)){
+            return AjaxResult.error("请选择服务费是否可退");
+        }
+        //是否有追索权
+        String zfpRecourse = CommonUtil.objToString(map.get("zfpRecourse"));
+        if(CommonUtil.isEmpty(zfpRecourse)){
+            return AjaxResult.error("请选择是否有追索权");
+        }
+        //电子凭证类型
+        String zfpVoucherType = CommonUtil.objToString(map.get("zfpVoucherType"));
+        if(CommonUtil.isEmpty(zfpVoucherType)){
+            return AjaxResult.error("电子凭证类型不能为空");
+        }
+        //是否需核心企业开户
+        String zfpCoreAccount = CommonUtil.objToString(map.get("zfpCoreAccount"));
+        if(CommonUtil.isEmpty(zfpCoreAccount)){
+            return AjaxResult.error("请选择是否需核心企业开户");
+        }
+        //是否需融资企业开户
+        String zfpSupplierAccount = CommonUtil.objToString(map.get("zfpSupplierAccount"));
+        if(CommonUtil.isEmpty(zfpCoreAccount)){
+            return AjaxResult.error("请选择是否需融资企业开户");
+        }
+        //记账簿托管方式
+        String zfpBookkeeping = CommonUtil.objToString(map.get("zfpBookkeeping"));
+        if(CommonUtil.isEmpty(zfpBookkeeping)){
+            return AjaxResult.error("记账簿托管方式不能为空");
+        }
+        //是否支持部分融资
+        String zfpPart = CommonUtil.objToString(map.get("zfpPart"));
+        if(CommonUtil.isEmpty(zfpPart)){
+            return AjaxResult.error("请选择是否支持部分融资");
+        }
+        //融资到期方式
+        String zfpExpire = CommonUtil.objToString(map.get("zfpExpire"));
+        //资方融资费率
+        String zfpRate = CommonUtil.objToString(map.get("zfpRate"));
+        //资方是否支持返佣
+        String zfpProfit = CommonUtil.objToString(map.get("zfpProfit"));
+        //资方返佣方式
+        String zfpProfitType = CommonUtil.objToString(map.get("zfpProfitType"));
+        //资方返佣费率
+        String zfpProfitRate = CommonUtil.objToString(map.get("zfpProfitRate"));
+        //是否需平台审批
+        String zfpPlatform = CommonUtil.objToString(map.get("zfpPlatform"));
+        //主键
+        String zfpId = CommonUtil.objToString(map.get("zfpId"));
+        //产品编号
+        String heard = "";
+        if("0".equals(zfpType)){
+            heard += "F";
+        }else {
+            heard += "L";
+        }
+        if("0".equals(zfpPlatform)){
+            heard += "P";
+        }else {
+            heard += "A";
+        }
+        zfpNumber = heard + time;
+        //查询原产品关联合同
+        LambdaQueryWrapper<ZcFinanceProConRel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ZcFinanceProConRel::getZfpcrProductId,zfpId);
+        List<ZcFinanceProConRel> original = zcFinanceProConRelService.findZcFinanceProConRels(queryWrapper);
+        //删除原关联合同
+        for(ZcFinanceProConRel proConRel:original){
+            zcFinanceProConRelService.removeById(proConRel.getZfpcrProductId());
+        }
+        //合同信息
+        List<Map<String, String>> tableData = (List<Map<String, String>>) map.get("contractList1");
+        if (tableData.size() == 0 ){
+            return AjaxResult.error("请选择合同");
+        }
+        //新增融资产品合同关联表
+        for (int i = 0; i < tableData.size(); i++) {
+            String zfcId = tableData.get(i).get("zfcId");
+            ZcFinanceProConRel zcFinanceProConRel = new ZcFinanceProConRel();
+            zcFinanceProConRel.setZfpcrProductId(zfpId);
+            zcFinanceProConRel.setZfpcrProductId(zfcId);
+            zcFinanceProConRelService.createZcFinanceProConRel(zcFinanceProConRel);
+        }
+        ZcFinanceProduct zcFinanceProduct = new ZcFinanceProduct();
+        //执行修改
+        zcFinanceProduct.setZfpId(zfpId);
+        zcFinanceProduct.setZfpNumber(zfpNumber);
+        zcFinanceProduct.setZfpName(zfpName);
+        zcFinanceProduct.setZfpManagementId(zfpManagementId);
+        zcFinanceProduct.setZfpSplit(zfpSplit);
+        zcFinanceProduct.setZfpType(zfpType);
+        zcFinanceProduct.setZfpAuthType(zfpAuthType);
+        zcFinanceProduct.setZfpMinimumAmount(zfpMinimumAmount);
+        zcFinanceProduct.setZfpShortestPeriod(zfpShortestPeriod);
+        zcFinanceProduct.setZfpCharge(zfpCharge);
+        zcFinanceProduct.setZfpRecourse(zfpRecourse);
+        zcFinanceProduct.setZfpVoucherType(zfpVoucherType);
+        zcFinanceProduct.setZfpCoreAccount(zfpCoreAccount);
+        zcFinanceProduct.setZfpSupplierAccount(zfpSupplierAccount);
+        zcFinanceProduct.setZfpBookkeeping(zfpBookkeeping);
+        zcFinanceProduct.setZfpPart(zfpPart);
+        zcFinanceProduct.setZfpExpire(zfpExpire);
+        zcFinanceProduct.setZfpRate(zfpRate);
+        zcFinanceProduct.setZfpProfit(zfpProfit);
+        zcFinanceProduct.setZfpProfitType(zfpProfitType);
+        zcFinanceProduct.setZfpProfitRate(zfpProfitRate);
+        zcFinanceProduct.setZfpPlatform(zfpPlatform);
+        zcFinanceProduct.setUpdateTime(DateUtils.getNowDate());
+        zcFinanceProduct.setUpdateBy(user);
+        zcFinanceProductService.updateZcFinanceProduct(zcFinanceProduct);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 修改产品启用状态
+     * @param zfpId
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:financeProduct:change")
+    @Log(title = "产品状态", businessType = BusinessType.UPDATE)
+    @PutMapping("/change/{zfpId}")
+    public AjaxResult changState(@PathVariable String zfpId){
+        //查询产品原状态
+        ZcFinanceProduct zcFinanceProduct =  zcFinanceProductService.getById(zfpId);
+        String state = zcFinanceProduct.getZfpStatus();
+        //如果是启用改为停用
+        if("01".equals(state)){
+            //查询产品是否关联授信
+            LambdaQueryWrapper<ZcFinanceProComRel> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(ZcFinanceProComRel::getZfpcrProductId,zfpId);
+            int count = zcFinanceProComRelService.count(queryWrapper);
+            //若已关联提示不可停用
+            if(count > 0){
+                return AjaxResult.error("不可停用!");
+            }else {
+                zcFinanceProduct.setZfpStatus("00");
+            }
+        }else {
+            //反之改为启用
+            zcFinanceProduct.setZfpStatus("01");
+        }
+        //执行修改
+        zcFinanceProductService.updateZcFinanceProduct(zcFinanceProduct);
+        return AjaxResult.success();
+    }
+
+}

+ 35 - 0
sc-service/src/main/java/com/huyi/service/financeProduct/mapper/OwnFinanceProductMapper.java

@@ -0,0 +1,35 @@
+package com.huyi.service.financeProduct.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huyi.service.base.entity.ZcFinanceProduct;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 融资产品Mapper接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface OwnFinanceProductMapper
+{
+
+    /**
+     * 查询融资产品列表
+     * @param page
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectFinanceProductList(Page<Map> page, @Param("paramMap") Map map);
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    public Map selectUserName(Map map);
+}

+ 32 - 0
sc-service/src/main/java/com/huyi/service/financeProduct/service/IOwnFinanceProductService.java

@@ -0,0 +1,32 @@
+package com.huyi.service.financeProduct.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+
+import java.util.Map;
+
+/**
+ * 融资产品Service接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface IOwnFinanceProductService
+{
+    /**
+     * 查询融资产品列表
+     * @param request
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectFinanceProductList(Map map, QueryRequest request);
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    public Map selectUserName(Map map);
+
+}

+ 47 - 0
sc-service/src/main/java/com/huyi/service/financeProduct/service/impl/OwnFinanceProductServiceImpl.java

@@ -0,0 +1,47 @@
+package com.huyi.service.financeProduct.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huyi.service.financeProduct.mapper.OwnFinanceProductMapper;
+import com.huyi.service.financeProduct.service.IOwnFinanceProductService;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * 融资产品Service业务层处理
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+@Service
+public class OwnFinanceProductServiceImpl implements IOwnFinanceProductService
+{
+    @Autowired
+    private OwnFinanceProductMapper financeProductMapper;
+
+    /**
+     * 查询融资产品列表
+     * @param map
+     * @param request
+     * @return
+     */
+    @Override
+    public IPage<Map> selectFinanceProductList(Map map,QueryRequest request){
+        Page page = new Page(request.getPageNum(),request.getPageSize());
+        return financeProductMapper.selectFinanceProductList(page,map);
+    }
+
+    /**
+     * 查询创建者名称
+     * @param map
+     * @return
+     */
+    @Override
+    public Map selectUserName(Map map) {
+        return financeProductMapper.selectUserName(map);
+    }
+
+}

+ 2 - 0
sc-service/src/main/resources/mapper/base/ZcFinanceProductMapper.xml

@@ -7,6 +7,8 @@
         <id column="zfp_id" property="zfpId" />
         <result column="zfp_number" property="zfpNumber" />
         <result column="zfp_name" property="zfpName" />
+        <result column="zfp_type" property="zfpType" />
+        <result column="zfp_auth_type" property="zfpAuthType" />
         <result column="zfp_management_id" property="zfpManagementId" />
         <result column="zfp_split" property="zfpSplit" />
         <result column="zfp_transfer" property="zfpTransfer" />

+ 51 - 0
sc-service/src/main/resources/mapper/contract/OwnContractMapper.xml

@@ -0,0 +1,51 @@
+<?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.huyi.service.contract.mapper.OwnContractMapper">
+
+    <select id="selectContractList" parameterType="map" resultType="map">
+        select
+            z.zfc_id 'zfcId',
+            z.zfc_name 'zfcName',
+            z.zfc_type 'zfcType',
+            z.zfc_management_id 'zfcManagementId',
+            z.zfc_subject 'zfcSubject',
+            z.zfc_node 'zfcNode',
+            z.zfc_desc 'zfcDesc',
+            z.zfc_file 'zfcFile',
+            z.zfc_status 'zfcStatus',
+            z.create_by 'createBy',
+            date_format( z.create_time,   '%Y-%m-%d %T') 'createTime',
+            s.scy_name 'scyName',
+            u.nick_name 'nickName'
+            from zc_finance_contract z
+            left join sys_company s
+            on z.zfc_management_id = s.scy_id
+            left join sys_user u
+            on z.create_by = u.user_id
+            where 1=1
+            and z.zfc_status != '02'
+            <if test="paramMap.zfcName != null  and paramMap.zfcName != ''">
+                AND z.zfc_name LIKE concat('%', #{paramMap.zfcName}, '%')
+            </if>
+            <if test="paramMap.scyName != null  and paramMap.scyName != ''">
+                AND s.scy_name LIKE concat('%', #{paramMap.scyName}, '%')
+            </if>
+            <if test="paramMap.zfcStatus != null  and paramMap.zfcStatus != ''">
+                and z.zfc_status = #{paramMap.zfcStatus}
+            </if>
+            <if test="paramMap.zfcSubject != null  and paramMap.zfcSubject != ''">
+                and z.zfc_subject = #{paramMap.zfcSubject}
+            </if>
+            order by z.create_time desc
+    </select>
+    <select id="selectUserName" parameterType="map" resultType="map">
+        select
+            nick_name 'nickName'
+        from zc_finance_product z
+        left join sys_user s
+        on z.create_by = s.user_id
+        where 1=1
+        and z.zfp_id = #{zfpId}
+    </select>
+
+</mapper>

+ 64 - 0
sc-service/src/main/resources/mapper/financeProduct/OwnFinanceProductMapper.xml

@@ -0,0 +1,64 @@
+<?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.huyi.service.financeProduct.mapper.OwnFinanceProductMapper">
+
+    <select id="selectFinanceProductList" parameterType="map" resultType="map">
+        select
+            z.zfp_id 'zfpId',
+            z.zfp_number 'zfpNumber',
+            z.zfp_name 'zfpName',
+            z.zfp_type 'zfpType',
+            z.zfp_auth_type 'zfpAuthType',
+            z.zfp_management_id 'zfpManagementId',
+            z.zfp_split 'zfpSplit',
+            z.zfp_transfer 'zfpTransfer',
+            z.zfp_recourse 'zfpRecourse',
+            z.zfp_voucher_type 'zfpVoucherType',
+            z.zfp_core_account 'zfpCoreAccount',
+            z.zfp_supplier_account 'zfpSupplierAccount',
+            z.zfp_charge 'zfpCharge',
+            z.zfp_status 'zfpStatus',
+            z.zfp_minimum_amount 'zfpMinimumAmount',
+            z.zfp_shortest_period 'zfpShortestPeriod',
+            z.zfp_bookkeeping 'zfpBookkeeping',
+            z.zfp_part 'zfpPart',
+            z.zfp_expire 'zfpExpire',
+            z.zfp_rate 'zfpRate',
+            z.zfp_profit 'zfpProfit',
+            z.zfp_profit_type 'zfpProfitType',
+            z.zfp_profit_rate 'zfpProfitRate',
+            z.zfp_platform 'zfpPlatform',
+            z.create_by 'createBy',
+            z.create_time 'createTime',
+            s.scy_name 'scyName'
+            from zc_finance_product z
+            left join sys_company s
+            on z.zfp_management_id = s.scy_id
+            where 1=1
+            <if test="paramMap.zfpName != null  and paramMap.zfpName != ''">
+                AND z.zfp_name LIKE concat('%', #{paramMap.zfpName}, '%')
+            </if>
+            <if test="paramMap.scyName != null  and paramMap.scyName != ''">
+                AND s.scy_name LIKE concat('%', #{paramMap.scyName}, '%')
+            </if>
+            <if test="paramMap.begin != null  and paramMap.begin != ''">
+                and z.zfp_shortest_period >= #{paramMap.begin}
+            </if>
+            <if test="paramMap.end != null  and paramMap.end != ''">
+                <![CDATA[
+                        and z.zfp_shortest_period <= #{paramMap.end}
+                        ]]>
+            </if>
+            order by z.create_time desc
+    </select>
+    <select id="selectUserName" parameterType="map" resultType="map">
+        select
+            nick_name 'nickName'
+        from zc_finance_product z
+        left join sys_user s
+        on z.create_by = s.user_id
+        where 1=1
+        and z.zfp_id = #{zfpId}
+    </select>
+
+</mapper>