فهرست منبع

还款管理后台接口

ch 3 سال پیش
والد
کامیت
7c207d33c5

+ 38 - 28
sc-service/sc-service.iml

@@ -37,19 +37,13 @@
     <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.3.4.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
-    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.5.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
-    <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
     <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
@@ -117,27 +111,6 @@
     <orderEntry type="library" name="Maven: com.tianhu:tianhu-common-security:2.4.1" level="project" />
     <orderEntry type="library" name="Maven: com.tianhu:tianhu-api-system:2.4.1" level="project" />
     <orderEntry type="library" name="Maven: com.tianhu:tianhu-common-core:2.4.1" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.5.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.10.1" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.10.1" level="project" />
-    <orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.10.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.6.2" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.3.0" level="project" />
-    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.4.RELEASE" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.1.5.Final" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
-    <orderEntry type="library" name="Maven: org.htmlparser:htmlparser:2.1" level="project" />
-    <orderEntry type="library" name="Maven: org.htmlparser:htmllexer:2.1" level="project" />
-    <orderEntry type="library" name="Maven: e-iceblue:spire.pdf.free:3.9.0" level="project" />
     <orderEntry type="library" name="Maven: com.tianhu:tianhu-common-redis:2.4.1" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.3.4.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.3.4.RELEASE" level="project" />
@@ -156,7 +129,6 @@
     <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.38" level="project" />
     <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.38" level="project" />
-    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.9.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
@@ -267,8 +239,46 @@
     <orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.16.18" level="project" />
     <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.49" level="project" />
     <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
+    <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.10.1" level="project" />
+    <orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.10.1" level="project" />
+    <orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.10.1" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
+    <orderEntry type="module-library">
+      <library name="Maven: cpcn.dsp:cpcn-dsp-api:v1.6.4.11">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/cpcn-dsp-api-v1.6.4.11.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.16" level="project" />
+    <orderEntry type="library" name="Maven: com.google.zxing:core:3.3.0" level="project" />
     <orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
     <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
     <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.3.0" level="project" />
+    <orderEntry type="library" name="Maven: com.beust:jcommander:1.48" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jai-imageio:jai-imageio-core:1.3.1" level="project" />
+    <orderEntry type="module-library">
+      <library name="Maven: com.spire:Spire.Doc:3.0.2">
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/lib/Spire.Doc.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
   </component>
 </module>

+ 18 - 9
sc-service/src/main/java/com/huyi/service/contract/controller/ContractControllers.java

@@ -2,7 +2,10 @@ 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.entity.PubFileInf;
+import com.huyi.service.base.entity.ZcFinanceContract;
+import com.huyi.service.base.entity.ZcFinanceProConRel;
+import com.huyi.service.base.entity.ZcFinanceQuotaConRel;
 import com.huyi.service.base.service.IPubFileInfService;
 import com.huyi.service.base.service.IZcFinanceContractService;
 import com.huyi.service.base.service.IZcFinanceProConRelService;
@@ -22,9 +25,6 @@ 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;
@@ -110,6 +110,12 @@ public class ContractControllers extends BaseController {
         return AjaxResult.success(map);
     }
 
+    /**
+     * 新增合同
+     * @param map
+     * @return
+     * @throws Exception
+     */
     @PreAuthorize(hasPermi = "service:contract:add")
     @Log(title = "合同", businessType = BusinessType.INSERT)
     @Transactional(rollbackFor=Exception.class)
@@ -252,8 +258,8 @@ public class ContractControllers extends BaseController {
 //            zfcFile = zfcFile.substring(0,zfcFile.indexOf("getBytes/")+41);
 //        }
         //主键
-        String zfcId = IdUtils.fastUUID();
-        //新增合同信息
+        String zfcId = CommonUtil.objToString(map.get("zfcId"));
+        //修改合同信息
         ZcFinanceContract zcFinanceContract = new ZcFinanceContract();
         zcFinanceContract.setZfcId(zfcId);
         zcFinanceContract.setZfcName(zfcName);
@@ -282,7 +288,7 @@ public class ContractControllers extends BaseController {
         ZcFinanceContract zcFinanceContract =  zcFinanceContractService.getById(zfcId);
         String state = zcFinanceContract.getZfcStatus();
         //如果是启用改为停用
-        if("01".equals(state)){
+        if("00".equals(state)){
             //查询合同是否关联产品
             LambdaQueryWrapper<ZcFinanceProConRel> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(ZcFinanceProConRel::getZfpcrContractId,zfcId);
@@ -295,11 +301,11 @@ public class ContractControllers extends BaseController {
             if(count > 0 || count1 > 0){
                 return AjaxResult.error("合同已被使用,不可停用!");
             }else {
-                zcFinanceContract.setZfcStatus("00");
+                zcFinanceContract.setZfcStatus("01");
             }
         }else {
             //反之改为启用
-            zcFinanceContract.setZfcStatus("01");
+            zcFinanceContract.setZfcStatus("00");
         }
         //执行修改
         zcFinanceContractService.updateZcFinanceContract(zcFinanceContract);
@@ -335,4 +341,7 @@ public class ContractControllers extends BaseController {
         return AjaxResult.success();
     }
 
+
+
+
 }

+ 365 - 0
sc-service/src/main/java/com/huyi/service/repayment/controller/repaymentController.java

@@ -0,0 +1,365 @@
+package com.huyi.service.repayment.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.deepoove.poi.XWPFTemplate;
+import com.huyi.service.base.entity.ZcFinanceInf;
+import com.huyi.service.base.entity.ZcFinanceRecord;
+import com.huyi.service.base.service.IZcFinanceInfService;
+import com.huyi.service.base.service.IZcFinanceRecordService;
+import com.huyi.service.repayment.service.IOwnRepaymentService;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import com.tianhu.common.core.domain.R;
+import com.tianhu.common.core.utils.CommonUtil;
+import com.tianhu.common.core.utils.DateUtils;
+import com.tianhu.common.core.utils.file.ExcelFileUtils;
+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.redis.common.RedisUtils;
+import com.tianhu.common.redis.domain.SysDictData;
+import com.tianhu.common.security.annotation.PreAuthorize;
+import com.tianhu.system.api.RemoteConfigService;
+import org.apache.commons.io.FileUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 还款controller
+ *
+ * @author ch
+ * @date 2021-8-24
+ */
+
+@RestController
+@RequestMapping("/repayment")
+public class repaymentController extends BaseController {
+    private static final Logger log = LoggerFactory.getLogger(repaymentController.class);
+    @Autowired
+    private IOwnRepaymentService ownRepaymentService;
+    @Autowired
+    private RemoteConfigService configService;
+    @Autowired
+    private IZcFinanceRecordService zcFinanceRecordService;
+    @Autowired
+    private IZcFinanceInfService zcFinanceInfService;
+    /**
+     * 查询全部还款列表
+     * @param type
+     * @param value
+     * @param repaymentDate
+     * @param request
+     * @return
+     */
+    @GetMapping("/list")
+    public AjaxResult list(String type, String value,
+                           @RequestParam(required = false) Map repaymentDate,
+                           String status, QueryRequest request) {
+        Map map = new HashMap(16);
+        if(CommonUtil.isNotEmpty(type)){
+            if("00".equals(type)){
+                //资金方
+                map.put("scyName",value);
+            }else if("01".equals(type)){
+                //融信编号
+                map.put("zfiNumber",value);
+            }else if("02".equals(type)){
+                //融资编号
+                map.put("zfrNumber",value);
+            }else {
+                //融资方
+                map.put("supplier",value);
+            }
+        }
+        //承诺还款日期
+        map.put("start",repaymentDate.get("repaymentDate[0]"));
+        map.put("end",repaymentDate.get("repaymentDate[1]"));
+        //还款状态
+        map.put("zfrApplyStatus",status);
+        IPage<Map> list = ownRepaymentService.selectRepaymentList(map,request);
+        return AjaxResult.success(list);
+    }
+    /**
+     * 查询还款详情
+     * @param zfrId
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:repayment:query")
+    @GetMapping(value = "/{zfrId}")
+    public AjaxResult getInfo(@PathVariable("zfrId") String zfrId)
+    {
+        Map map = new HashMap(16);
+        map.put("zfrId",zfrId);
+        List<Map> result = ownRepaymentService.selectById(map);
+
+        return AjaxResult.success(result);
+    }
+    /**
+     * 待还款导出
+     * @param response
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:repayment:export")
+    @Log(title = "待还款导出", businessType = BusinessType.EXPORT)
+    @Transactional(rollbackFor=Exception.class)
+    @PostMapping("/export")
+    public R export(HttpServletResponse response){
+
+        //最终结果集
+        List detailList = new ArrayList();
+        //判断到处哪些日志
+        Map map = new HashMap();
+        //map.put("zfrApplyStatus","01");
+        List<Map> list = ownRepaymentService.selectNoPageRepaymentList(map);
+        //从缓存中获取字典值用于转义。
+        List<SysDictData> workState = RedisUtils.getDictCache("zc_zfr_apply_status");
+        Map<String,String> stateMap = new HashMap();
+        for (Object object : workState) {
+            if (object instanceof SysDictData) {
+                SysDictData dictData = (SysDictData)object;
+                stateMap.put(dictData.getDictValue(),dictData.getDictLabel());
+            } else if (object instanceof JSONObject) {
+                JSONObject dictData = (JSONObject)object;
+                stateMap.put(String.valueOf(dictData.get("dictValue")),String.valueOf(dictData.get("dictLabel")));
+            }
+        }
+        //将获得的list中的是否加班字段替换为汉字
+        for(Map changeMap:list){
+            String zfrApplyStatus = CommonUtil.objToString(changeMap.get("zfrApplyStatus"));
+            changeMap.put("zfrApplyStatus",stateMap.get(zfrApplyStatus));
+            detailList.add(changeMap);
+        }
+        //导出文档名称
+        String fileName = "待还款列表";
+        //查询表头
+        List<String> tableT = new ArrayList<>();
+        tableT.add("融信编号#zfiNumber");
+        tableT.add("还款承诺函编号#zfiPaymentNumber");
+        tableT.add("最终还款方#core");
+        tableT.add("还款金额(元)#zfrLoanAmount");
+        tableT.add("还款银行账户#zfpcrAccount");
+        tableT.add("实际还款日期#zfrPayDate");
+        tableT.add("承诺付款日期#zfrRepaymentDate");
+        tableT.add("还款状态#zfrApplyStatus");
+        //执行导出
+        try {
+            HSSFWorkbook wb = ExcelFileUtils.export(response,fileName,tableT,detailList);
+            response.setCharacterEncoding("UTF-8");
+            // 设置contentType为excel格式
+            response.setContentType("application/vnd.ms-excel;charset=utf-8");
+            //默认Excel名称
+            response.setHeader("Content-disposition", "attachment;filename=" + "员工日志详情"+ URLEncoder.encode(fileName + ".xls", "UTF-8"));
+            response.flushBuffer();
+            OutputStream outputStream = response.getOutputStream();
+            wb.write(outputStream);
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException var20) {
+                    var20.printStackTrace();
+                }
+            }
+        } catch (Exception var22) {
+            log.error("导出Excel异常{}", var22.getMessage());
+        }
+        return R.ok();
+    }
+    /**
+     * 还款明细下载
+     * @param response
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:repayment:downLoad")
+    @Log(title = "还款明细下载", businessType = BusinessType.EXPORT)
+    @Transactional(rollbackFor=Exception.class)
+    @PostMapping("/export/{zfrId}")
+    public AjaxResult downLoad(HttpServletResponse response,@PathVariable String zfrId) throws Exception {
+
+//        String directory = "D:\\" ;
+        String directory = configService.selectConfigByKey("zc_repayment_export").getMsg();
+        //查询还款明细表
+        Map map = new HashMap(16);
+        map.put("zfrId",zfrId);
+        List<Map> result = ownRepaymentService.selectById(map);
+        //编号
+        String zfrPayNumber = CommonUtil.objToString(result.get(0).get("zfrPayNumber"));
+        //最终付款方
+        String core = CommonUtil.objToString(result.get(0).get("core"));
+        //还款承诺函编号
+        String zfiPaymentNumber = CommonUtil.objToString(result.get(0).get("zfiPaymentNumber"));
+        //承诺付款日期
+        String zfrRepaymentDate = CommonUtil.objToString(result.get(0).get("zfrRepaymentDate"));
+        //承诺付款金额
+        String zfrLoanAmount = CommonUtil.objToString(result.get(0).get("zfrLoanAmount"));
+        //付款账户名称
+        String payName = core;
+        //付款账户账号
+        String zfpcrAccount = CommonUtil.objToString(result.get(0).get("zfpcrAccount"));
+        //付款账户开户行
+        String zfpcrAccountBank = CommonUtil.objToString(result.get(0).get("zfpcrAccountBank"));
+        //收款方
+        String receive = CommonUtil.objToString(result.get(0).get("supplier"));
+        //还款账户名
+        String returnName = "";
+        if("0".equals(CommonUtil.objToString(result.get(0).get("zpfType")))){
+            returnName = receive;
+        }else {
+            returnName = core;
+        }
+        //还款账户账号
+        String returnAccountNumber = zfpcrAccount;
+        //收款金额
+        String receiveAmount = zfrLoanAmount;
+
+        // 模版位置
+        String contracts = configService.selectConfigByKey("zc_repayment_export_docx").getMsg();
+        //contracts = "C:\\Users\\chenh\\Desktop\\RepaymentList.docx";
+//        contracts = Test.class.getClassLoader().getResource("RepaymentList.docx").getPath();
+        String fileName = "HKXQ"+ DateUtils.dateTimeNow() + ".docx";
+        String filePath = directory + fileName;
+        log.info("<===================模板=================>"+filePath);
+        System.out.println(contracts);
+        FileUtils.copyFile(new File(contracts), new File(filePath));
+        FileInputStream inputStream = new FileInputStream(contracts);
+        //模板字段取值
+        Map docMap = new HashMap();
+        try {
+            docMap.put("zfrPayNumber",zfrPayNumber);
+            docMap.put("core",core);
+            docMap.put("zfiPaymentNumber",zfiPaymentNumber);
+            docMap.put("zfrRepaymentDate",zfrRepaymentDate);
+            docMap.put("zfrLoanAmount",zfrLoanAmount);
+            docMap.put("payName",payName);
+            docMap.put("zfpcrAccount",zfpcrAccount);
+            docMap.put("zfpcrAccountBank",zfpcrAccountBank);
+            docMap.put("receive",receive);
+            docMap.put("returnName",returnName);
+            docMap.put("returnAccountNumber",returnAccountNumber);
+            docMap.put("receiveAmount",receiveAmount);
+            System.out.println(docMap);
+            XWPFTemplate template = XWPFTemplate.compile(inputStream).render(docMap);
+            //写入模板
+            template.writeToFile(filePath);
+            //关闭流
+            inputStream.close();
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        File zipFile = new File(filePath);
+        if(zipFile.exists()){
+            down(response, fileName, directory);
+            zipFile.delete();
+        }
+        return null;
+    }
+
+    /**
+     * 文件下载
+     * @param response  请求
+     * @param fileName  文件名
+     * @param path      文件
+     */
+    public void down(HttpServletResponse response, String fileName, String path) {
+        response.setHeader("content-type", "application/octet-stream");
+        response.setContentType("application/octet-stream");
+        response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
+        byte[] buff = new byte[1024];
+        //创建缓冲输入流
+        BufferedInputStream bis = null;
+        OutputStream outputStream = null;
+
+        try {
+            outputStream = response.getOutputStream();
+
+            //这个路径为待下载文件的路径
+            bis = new BufferedInputStream(new FileInputStream(new File(path + fileName )));
+            int read = bis.read(buff);
+
+            //通过while循环写入到指定了的文件夹中
+            while (read != -1) {
+                outputStream.write(buff, 0, buff.length);
+                outputStream.flush();
+                read = bis.read(buff);
+            }
+        } catch ( Exception e ) {
+            e.printStackTrace();
+            // 下载失败
+        } finally {
+            if (bis != null) {
+                try {
+                    bis.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * 还款登记
+     * @param map
+     * @return
+     */
+    @PreAuthorize(hasPermi = "service:repayment:edit")
+    @Log(title = "还款登记", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult RepaymentRegistration(@RequestBody Map map){
+        //附件url
+        List<Map<String, String>> file = (List<Map<String, String>>) map.get("zfrApplyFile");
+        if(file.size() == 0){
+            return AjaxResult.error("请上传附件");
+        }
+        String zfrApplyFile="";
+        String zfrApplyFileId = "";
+        if(file.size()>0) {
+            for (int j = 0; j < file.size(); j++) {
+                Map<String, String> fileUrl = file.get(j);
+                if (j == 0) {
+                    zfrApplyFile = fileUrl.get("url");
+                    zfrApplyFileId = CommonUtil.objToString(fileUrl.get("uid"));
+                } else {
+                    zfrApplyFile += "," + fileUrl.get("url");
+                    zfrApplyFileId += "," + CommonUtil.objToString(fileUrl.get("uid"));
+                }
+            }
+        }
+        //主键
+        String zfrId = CommonUtil.objToString(map.get("zfrId"));
+        ZcFinanceRecord zcFinanceRecord = new ZcFinanceRecord();
+        zcFinanceRecord.setZfrId(zfrId);
+        //添加上传文件
+        zcFinanceRecord.setZfrApplyFile(zfrApplyFileId);
+        //修改融资状态未已结算
+        zcFinanceRecord.setZfrStatus("03");
+        zcFinanceRecordService.updateZcFinanceRecord(zcFinanceRecord);
+        //融信Id
+        ZcFinanceRecord record = zcFinanceRecordService.getById(zfrId);
+        String zfiId = record.getZfrFinanceId();
+        //修改融信状态未失效
+        ZcFinanceInf zcFinanceInf = new ZcFinanceInf();
+        zcFinanceInf.setZfiId(zfiId);
+        zcFinanceInf.setZfiStatus("03");
+        zcFinanceInfService.updateZcFinanceInf(zcFinanceInf);
+        return null;
+    }
+}

+ 40 - 0
sc-service/src/main/java/com/huyi/service/repayment/mapper/OwnRepaymentMapper.java

@@ -0,0 +1,40 @@
+package com.huyi.service.repayment.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.List;
+import java.util.Map;
+
+/**
+ * 还款Mapper接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface OwnRepaymentMapper
+{
+
+    /**
+     * 查询还款列表
+     * @param page
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectRepaymentList(Page<Map> page, @Param("paramMap") Map map);
+
+    /**
+     * 查询还款详情
+     * @param map
+     * @return
+     */
+    public List<Map> selectById(Map map);
+
+    /**
+     * 查询还款列表(不分页)
+     * @param map
+     * @return
+     */
+    public List<Map> selectNoPageRepaymentList(Map map);
+}

+ 40 - 0
sc-service/src/main/java/com/huyi/service/repayment/service/IOwnRepaymentService.java

@@ -0,0 +1,40 @@
+package com.huyi.service.repayment.service;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 还款Service接口
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+public interface IOwnRepaymentService
+{
+    /**
+     * 查询还款列表
+     * @param request
+     * @param map
+     * @return
+     */
+    public IPage<Map> selectRepaymentList(Map map, QueryRequest request);
+
+    /**
+     * 查询还款详情
+     * @param map
+     * @return
+     */
+    public List<Map> selectById(Map map);
+
+    /**
+     * 查询还款列表(不分页)
+     * @param map
+     * @return
+     */
+    public List<Map> selectNoPageRepaymentList(Map map);
+
+}

+ 48 - 0
sc-service/src/main/java/com/huyi/service/repayment/service/impl/OwnRepaymentServiceImpl.java

@@ -0,0 +1,48 @@
+package com.huyi.service.repayment.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huyi.service.repayment.mapper.OwnRepaymentMapper;
+import com.huyi.service.repayment.service.IOwnRepaymentService;
+import com.keao.tianhu.starter.mybatis.plus.entity.QueryRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 还款Service业务层处理
+ * 
+ * @author ch
+ * @date 2021-08-17
+ */
+@Service
+public class OwnRepaymentServiceImpl implements IOwnRepaymentService
+{
+    @Autowired
+    private OwnRepaymentMapper ownRepaymentMapper;
+
+    /**
+     * 查询还款列表
+     * @param map
+     * @param request
+     * @return
+     */
+    @Override
+    public IPage<Map> selectRepaymentList(Map map,QueryRequest request){
+        Page page = new Page(request.getPageNum(),request.getPageSize());
+        return ownRepaymentMapper.selectRepaymentList(page,map);
+    }
+
+    @Override
+    public List<Map> selectById(Map map) {
+        return ownRepaymentMapper.selectById(map);
+    }
+
+    @Override
+    public List<Map> selectNoPageRepaymentList(Map map) {
+        return ownRepaymentMapper.selectNoPageRepaymentList(map);
+    }
+
+}

+ 116 - 0
sc-service/src/main/resources/mapper/repayment/OwnRepaymentMapper.xml

@@ -0,0 +1,116 @@
+<?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.repayment.mapper.OwnRepaymentMapper">
+
+    <select id="selectRepaymentList" parameterType="map" resultType="map">
+        select
+            r.zfr_id 'zfrId',
+            i.zfi_number 'zfiNumber',
+            i.zfi_core_id 'zfiCoreId',
+            i.zfi_payment_number 'zfiPaymentNumber',
+            r.zfr_loan_amount 'zfrLoanAmount',
+            pcr.zfpcr_account 'zfpcrAccount',
+            date_format(r.zfr_pay_date,'%Y-%m-%d') 'zfrPayDate',
+            date_format(r.zfr_repayment_date,'%Y-%m-%d')  'zfrRepaymentDate',
+            r.zfr_apply_status 'zfrApplyStatus',
+            s.scy_name 'scyName',
+            y.scy_name 'core',
+            c.scy_name 'supplier'
+            from zc_finance_record r
+            left join zc_finance_inf i
+            on r.zfr_finance_id = i.zfi_id
+            left join zc_finance_pro_com_rel pcr
+            on i.zfi_core_quota_id =pcr.zfpcr_id
+            left join zc_finance_product p
+            on i.zfi_product_id = p.zfp_id
+            left join sys_company s
+            on p.zfp_management_id = s.scy_id
+            left join sys_company c
+            on i.zfi_supplier_id = c.scy_id
+            left join sys_company y
+            on i.zfi_core_id = y.scy_id
+            where 1=1
+            AND r.zfr_status = '01'
+            <if test="paramMap.zfrApplyStatus != null  and paramMap.zfrApplyStatus != ''">
+                AND r.zfr_apply_status = #{paramMap.zfrApplyStatus}
+            </if>
+            <if test="paramMap.supplier != null  and paramMap.supplier != ''">
+                AND c.scy_name LIKE concat('%', #{paramMap.supplier}, '%')
+            </if>
+            <if test="paramMap.scyName != null  and paramMap.scyName != ''">
+                AND s.scy_name LIKE concat('%', #{paramMap.scyName}, '%')
+            </if>
+            <if test="paramMap.zfiNumber != null  and paramMap.zfiNumber != ''">
+                and i.zfi_number  LIKE concat('%', #{paramMap.zfiNumber}, '%')
+            </if>
+            <if test="paramMap.zfrNumber != null  and paramMap.zfrNumber != ''">
+                and r.zfr_number LIKE concat('%', #{paramMap.zfrNumber}, '%')
+            </if>
+            <if test="paramMap.end != null  and paramMap.end != ''">
+                and r.zfr_repayment_date between
+                    #{paramMap.start} and #{paramMap.end}
+            </if>
+            order by r.create_time desc
+    </select>
+    <select id="selectById" parameterType="map" resultType="map">
+        select
+            r.zfr_pay_number 'zfrPayNumber',
+            s.scy_name 'core',
+            i.zfi_payment_number 'zfiPaymentNumber',
+            date_format(r.zfr_repayment_date,'%Y-%m-%d') 'zfrRepaymentDate',
+            r.zfr_loan_amount 'zfrLoanAmount',
+            p.zfp_name 'zfpName',
+            p.zfp_type 'zpfType',
+            pcr.zfpcr_account 'zfpcrAccount',
+            pcr.zfpcr_account_bank 'zfpcrAccountBank',
+            r.zfr_apply_status 'zfrApplyStatus',
+            r.zfr_collection_account 'zfrCollectionAccount',
+            c.scy_name 'supplier'
+        from zc_finance_record r
+        left join zc_finance_inf i
+        on r.zfr_finance_id = i.zfi_id
+        left join zc_finance_pro_com_rel pcr
+        on i.zfi_core_quota_id = pcr.zfpcr_id
+        left join zc_finance_product p
+        on i.zfi_product_id = p.zfp_id
+        left join sys_company s
+        on i.zfi_core_id = s.scy_id
+        left join sys_company c
+        on i.zfi_supplier_id = c.scy_id
+        where
+        r.zfr_id = #{zfrId}
+    </select>
+    <select id="selectNoPageRepaymentList" parameterType="map" resultType="map">
+        select
+        r.zfr_id 'zfrId',
+        i.zfi_number 'zfiNumber',
+        i.zfi_core_id 'zfiCoreId',
+        i.zfi_payment_number 'zfiPaymentNumber',
+        r.zfr_loan_amount 'zfrLoanAmount',
+        pcr.zfpcr_account 'zfpcrAccount',
+        date_format(r.zfr_pay_date,'%Y-%m-%d') 'zfrPayDate',
+        date_format(r.zfr_repayment_date,'%Y-%m-%d')  'zfrRepaymentDate',
+        r.zfr_apply_status 'zfrApplyStatus',
+        s.scy_name 'scyName',
+        y.scy_name 'core',
+        c.scy_name 'supplier'
+        from zc_finance_record r
+        left join zc_finance_inf i
+        on r.zfr_finance_id = i.zfi_id
+        left join zc_finance_pro_com_rel pcr
+        on i.zfi_core_quota_id =pcr.zfpcr_id
+        left join zc_finance_product p
+        on i.zfi_product_id = p.zfp_id
+        left join sys_company s
+        on p.zfp_management_id = s.scy_id
+        left join sys_company c
+        on i.zfi_supplier_id = c.scy_id
+        left join sys_company y
+        on i.zfi_core_id = y.scy_id
+        where 1=1
+        AND r.zfr_status = '01'
+        AND r.zfr_apply_status != '01'
+        order by r.create_time desc
+    </select>
+
+</mapper>