package com.mobanker.tkj.cw.web.v1_0_0;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.dianping.cat.message.Transaction;
import com.mobanker.framework.dto.PageQueryCondition;
import com.mobanker.framework.dto.ResponseEntity;
import com.mobanker.framework.tracking.EE;
import com.mobanker.tkj.cw.biz.AccountRepayManager;
import com.mobanker.tkj.cw.core.constant.errorcode.CWConstants;
import com.mobanker.tkj.cw.core.util.ExcelUtils;
import com.mobanker.tkj.cw.repay.dto.AccountRepayDto;
import com.mobanker.tkj.cw.repay.service.AccountRepayService;
/**
* Created by qiuyangjun on 2014/12/3.
*/
@Controller
@RequestMapping("accountRepay")
public class AccountRepayController
{
protected final Logger logger = LoggerFactory.getLogger(getClass());
@Resource
private AccountRepayManager accountRepayManager;
@Resource
private AccountRepayService accountRepayService;
/**
* Description: 根据userId查询:借款单号,还款方式,还款金额,还款状态[仅成功失败两种状态],微信支付手续费,还款时间。
* 并以借款单号作为key值,其他相同借款单号对应的集合作为value返回的map <br/>
* @param userId 用户ID
* @return ResponseEntity
* @author hongchaoMao <br/>
* Create date: 2015年7月28日
*/
@ResponseBody
@RequestMapping(value = "findPayWayByUserId/{userId}")
public ResponseEntity<Map<String, List<AccountRepayDto>>> findPayWayByBorrowNid(@PathVariable("userId") String userId)
{
ResponseEntity<Map<String, List<AccountRepayDto>>> res = new ResponseEntity<Map<String, List<AccountRepayDto>>>();
Map<String, List<AccountRepayDto>> map = accountRepayService.findPayWayByUserId(userId);
if (MapUtils.isEmpty(map))
{
res.setMsg("没有找到借款单号对应相关还款信息!");
res.setError(CWConstants.CW.PARAMS_INVALID_NULL_CODE);
res.setStatus(CWConstants.CW.FAIL);
return res;
}
res.setStatus(CWConstants.CW.OK);
res.setData(map);
return res;
}
@ResponseBody
@RequestMapping(value = "findDtoByBorrowNid/{borrowNid}")
public ResponseEntity findDtoByBorrowNid(@PathVariable("borrowNid") String borrowNid)
{
return accountRepayService.findDtoByBorrowNid(borrowNid);
}
/**
* 根据参数查询还款状态(手机贷)
*
* @param request
* @date 2015/06/02 14:37
* @return
* @return
*/
@ResponseBody
@RequestMapping(value = "getAccountRepaySelectStatusListWithShoujidai/{realName}_{phone}_{billNo}_{transSerialsid}_{channelId}_{startDate}_{endDate}_{currentPage}_{pageSize}_{repayStatus}", method = RequestMethod.GET)
public ResponseEntity getAccountRepaySelectStatusListWithShoujidai(
@PathVariable("realName") String realName,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
@PathVariable("phone") String phone, @PathVariable("billNo") String billNo,
@PathVariable("channelId") String channelId,@PathVariable("repayStatus") String repayStatus,
@PathVariable("transSerialsid") String transSerialsid,PageQueryCondition condition)
{
logger.debug("enter getAccountRepaySelectStatusList method");
// 设定局部变量
Map<String, Object> map = new HashMap<String, Object>();
if(realName!=null&&realName.length()>0){
map.put("realName", realName);
}
if(phone!=null&&phone.length()>0){
map.put("phone", phone);
}
if(billNo!=null&&billNo.length()>0){
map.put("billNo", billNo);
}
if(transSerialsid!=null&&transSerialsid.length()>0){
map.put("transSerialsid", transSerialsid);
}
map.put("startDate", startDate);
map.put("endDate", endDate);
map.put("productType", "shoujidai");
map.put("channelId", channelId);
map.put("repayStatus", repayStatus);
return accountRepayService.getAccountRepaySelectStatusListByParams(map,condition);
}
/**
* 根据参数查询还款状态(学生贷)
* @date 2015/06/02 14:37
* @return
* @return
*/
@ResponseBody
@RequestMapping(value = "getAccountRepaySelectStatusListWithUZone/{realName}_{phone}_{billNo}_{transSerialsid}_{channelId}_{startDate}_{endDate}_{currentPage}_{pageSize}_{repayStatus}", method = RequestMethod.GET)
public ResponseEntity getAccountRepaySelectStatusListWithUZone(
@PathVariable("realName") String realName,
@PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate,
@PathVariable("phone") String phone, @PathVariable("billNo") String billNo,
@PathVariable("channelId") String channelId, @PathVariable("repayStatus") String repayStatus,
@PathVariable("transSerialsid") String transSerialsid,PageQueryCondition condition)
{
logger.debug("enter getAccountRepaySelectStatusList method");
// 设定局部变量
// 设定局部变量
Map<String, Object> map = new HashMap<String, Object>();
if(realName!=null&&realName.length()>0){
map.put("realName", realName+"%");
}
if(phone!=null&&phone.length()>0){
map.put("phone", phone+"%");
}
if(billNo!=null&&billNo.length()>0){
map.put("billNo", billNo+"%");
}
if(transSerialsid!=null&&transSerialsid.length()>0){
map.put("transSerialsid", transSerialsid+"%");
}
map.put("startDate", startDate);
map.put("endDate", endDate);
map.put("productType", "uzone");
map.put("channelId", channelId);
map.put("repayStatus", repayStatus);
return accountRepayService.getAccountRepaySelectStatusListByParams(map,condition);
}
/**
* 查询指定transserialsid的还款个数
* @author yangxiaoming
* @date 2015/06/02 14:37
* @return
* @return
*/
@ResponseBody
@RequestMapping(value = "getNumTransserialsid/{transserialsid}", method = RequestMethod.GET)
public ResponseEntity<String> getNumTransserialsid(@PathVariable("transserialsid") String transserialsid)
{
ResponseEntity<String> res = new ResponseEntity<String>();
if (StringUtils.isBlank(transserialsid))
{
logger.error("查询指定transserialsid的还款个数失败--transserialsid不存在!");
res.setMsg("查询指定transserialsid的还款个数失败--transserialsid不存在!");
res.setStatus(CWConstants.CW.FAIL);
res.setError(CWConstants.CW.PARAMS_INVALID_NULL_CODE);
return res;
}
String num = accountRepayService.getNumTransserialsid(transserialsid);
res.setStatus(CWConstants.CW.OK);
res.setMsg("查询指定transserialsid的还款个数成功");
res.setData(num);
return res;
}
/**
* 回调xml
* @author taojin
* @date 2015/06/02 14:37
* @return
* @return
*/
@ResponseBody
@RequestMapping(value = "getHuiDiaoXml", method = RequestMethod.GET)
public void getHuiDiaoXml()
{
accountRepayManager.getHuiDiaoXml();
}
/**
* 查询当日还款明细uzone
* @author taojin
* @date 2015/07/15 16:10
* @return
*/
@ResponseBody
@RequestMapping(value = "getDailyRefundDetailU/{startTime}_{endTime}")
public ResponseEntity getDailyRefundDetailU(@PathVariable("startTime") Date startTime,
@PathVariable("endTime") Date endTime)
{
logger.debug("enter getDailyRefundDetail method,startTime{},endTime{}", startTime, endTime);
return accountRepayService.getDailyRefundDetailU(startTime, endTime);
}
/**
* 查投诉单
* @param date
* @author taojin
* @date 2015/07/20 17:37
* @return
*/
@ResponseBody
@RequestMapping(value = "getDkComplaint/{accoutNo}_{date}_{amount}_{transserialsid}")
public ResponseEntity getDkComplaint(@PathVariable("accoutNo") String accoutNo,
@PathVariable("date") String date, @PathVariable("amount") String amount,
@PathVariable("transserialsid") String transserialsid)
{
logger.debug("enter getDkComplaint method,accoutNo{},date{},amount{},transserialsid{}",
accoutNo, date, amount, transserialsid);
return accountRepayService.getDkComplaint(accoutNo, date, amount, transserialsid);
}
/**
*
* <b>Description:查询分期-每期还款记录只要某笔还款有一部分销该期的张就全部显示出来</b>〈方法详细描述〉<br/>
* @return
* @author gaohailiang <br/>
* Create date: 2016年4月14日
*/
@ResponseBody
@RequestMapping(value = "queryRepayByInstallment/{borrowNid}_{period}")
public ResponseEntity queryRepayByInstallment(@PathVariable("borrowNid") String borrowNid,@PathVariable("period") String period)
{
Map<String,Object> map = new HashMap<String,Object>();
map.put("borrowNid",borrowNid);
if(period == null || period.equals("") || period.equals("0")){
map.put("period",null);
}else{
map.put("period",period);
}
return accountRepayManager.queryRepayByInstallment(map);
}
/**
* <b>Description:</b>〈用于修改还款渠道〉<br/>
* @param channel
* @param uid
* @return
* @author luxingguo <br/>
* Create date: 2016年5月10日
*/
@ResponseBody
@RequestMapping(value = "updateAccountRepay/{billNo}_{uid}_{remark}")
public ResponseEntity updateAccountRepay(@PathVariable("billNo") String billNo,@PathVariable("uid") Integer uid,@PathVariable("remark") String remark)
{
ResponseEntity rse = new ResponseEntity();
if(StringUtils.isBlank(billNo)){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("billNo不能为空");
return rse;
}
if(null==uid){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("uid不能为空");
return rse;
}
return accountRepayManager.updateAccountRepayAndBills(billNo,uid,remark,rse);
}
/**
* <b>Description:</b>〈用于修改还款状态〉<br/>
* @param channel
* @param uid
* @return
* @author luxingguo <br/>
* Create date: 2016年5月10日
*/
@ResponseBody
@RequestMapping(value = "updateAccountRepayAndBills/{billNo}_{status}_{remark}")
public ResponseEntity updateAccountRepayAndBills(@PathVariable("billNo") String billNo,@PathVariable("status") String status,@PathVariable("remark") String remark)
{
ResponseEntity rse = new ResponseEntity();
if(StringUtils.isBlank(billNo)){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("billNo不能为空");
return rse;
}
if(StringUtils.isBlank(status)){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("status不能为空");
return rse;
}
/*if(StringUtils.isBlank(remark)){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("remark不能为空");
return rse;
}*/
return accountRepayManager.updateAccountRepayAndBills(billNo,status,remark,rse);
}
/**
* 置为失败操作接口
* @param borrowNid
* @param billNo
* @param reverseStatus
* @param userName
* @author mengjiguang
* @return
*/
@ResponseBody
@RequestMapping(value = "operateFailure", method = RequestMethod.POST)
public ResponseEntity operateFailure(String borrowNid, String billNo, String reverseStatus, String userName)
{
Map<String, String> map = new HashMap<String, String>();
map.put("borrowNid", borrowNid);
map.put("billNo", billNo);
map.put("status", reverseStatus);
map.put("userName", userName);
return accountRepayManager.operateFailure(map);
}
/**
* 置为失败 审核通过
* @param borrowNid
* @param billNo
* @param reverseStatus
* @param userName
* @author mengjiguang
* @return
*/
@ResponseBody
@RequestMapping(value = "operateAuditPass", method = RequestMethod.POST)
public ResponseEntity operateAuditPass(String borrowNid, String billNo, String reverseStatus, String userName)
{
Map<String, String> map = new HashMap<String, String>();
map.put("borrowNid", borrowNid);
map.put("billNo", billNo);
map.put("status", reverseStatus);
map.put("userName", userName);
return accountRepayManager.operateAuditPass(map);
}
/**
* 置为失败 审核拒绝
* @param borrowNid
* @param billNo
* @param reverseStatus
* @param userName
* @author mengjiguang
* @return
*/
@ResponseBody
@RequestMapping(value = "operateAuditRefuse", method = RequestMethod.POST)
public ResponseEntity operateAuditRefuse(String borrowNid, String billNo, String reverseStatus, String userName)
{
Map<String, String> map = new HashMap<String, String>();
map.put("borrowNid", borrowNid);
map.put("billNo", billNo);
map.put("status", reverseStatus);
map.put("userName", userName);
return accountRepayManager.operateAuditRefuse(map);
}
/**
* 冲正审核界面查看接口
* @param borrowNid
* @author mengjiguang
* @return
*/
@ResponseBody
@RequestMapping(value = "findDtoReverseByBorrowNid/{borrowNid}")
public ResponseEntity findDtoReverseByBorrowNid(@PathVariable("borrowNid") String borrowNid)
{
return accountRepayManager.findDtoReverseByBorrowNid(borrowNid);
}
@ResponseBody
@RequestMapping(value = "updateAccountRepayChannelFee/{billNo}")
public ResponseEntity updateAccountRepayChannelFee(@PathVariable("billNo") String billNo)
{
ResponseEntity rse = new ResponseEntity();
if(StringUtils.isBlank(billNo)){
rse.setStatus(CWConstants.CW.FAIL);
rse.setMsg("billNo不能为空");
return rse;
}
return accountRepayManager.updateAccountRepayChannelFee(billNo);
}
/**
*
* <b>Description:</b>〈方法详细描述〉<br/>
* @param request
* @return
* @throws Exception
* @author gaohailiang <br/>
* Create date: 2016年10月13日
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "importRepayData", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity importRepayData(MultipartHttpServletRequest request) throws Exception {
ResponseEntity entity=null;
Transaction trans = EE.newTransaction("URL", "AccountRepayController.importRepayData");
MultipartHttpServletRequest multipartReq = (MultipartHttpServletRequest) request;
MultipartFile file = multipartReq.getFile("excelFile");
try {
// 校验excel格式,不同格式对应不同方法
if (file.getOriginalFilename().endsWith(".xlsx")) {
XSSFSheet sheet=ExcelUtils.getXSSFSheetSheet(file, 0);
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
}
} else if (file.getOriginalFilename().endsWith(".xls")) {
HSSFSheet sheet=ExcelUtils.getHSSFSheetSheet(file, 0);
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
}
}
} finally {
trans.complete();
}
return entity;
}
}
- 浏览: 314626 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (192)
- Java基础 (36)
- jsp jstl el (0)
- sql (8)
- java--hibernate (3)
- dorado dataset (2)
- svn (3)
- java--知识点 utc 转 date (1)
- java--小功能 (5)
- Java--基础理论 (1)
- js--技术点 (4)
- js--基础理论 (3)
- java--dorado服务端 (1)
- javaee--jstl (1)
- dorado - -客户端 (1)
- struts1 (1)
- ant (1)
- smarty (1)
- log4j (2)
- tomcat (4)
- mysql (2)
- Axis (2)
- oracle (3)
- js 静态分页 (1)
- sql function (2)
- microsoft sql server (1)
- linux vi (1)
- LinkedHashMap (1)
- java-xml (2)
- Java基础,java面试题 (1)
- java面试题 (2)
- sql复制表 (1)
- jdbc-maven (1)
- linux 查看并发数 (2)
- json (1)
- linux (5)
- mybatis (5)
- 计算机基础 (1)
- Collection (0)
- Java.util (1)
- Java (0)
- Java Web (1)
- 大数据,flume (1)
- kafka (3)
- storm (1)
- mongodb (1)
- spring (12)
- ibatis 批量插入 (1)
- eclipse 模板配置教程 (1)
- csv文件生成工具类 (1)
- jetty (1)
- 多线程 (1)
- rabbitmq (1)
- git (1)
- dubbo (2)
- spring boot (1)
- Diamond 配置生成 (1)
- Elasticsearch (1)
- common.io (1)
- commons (2)
- ibatis|mybatis (1)
最新评论
-
NEOGX:
http://www.tuicool.com/articles ...
Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 -
么可k:
可以喔
Can not find the tag library descriptor for "http://java.sun.com/j... -
tianyi_qingwu:
解决了我的一个问题,学习了,谢谢!
Ant+Flex: Java Heap Space -
ldci3gandroid:
if(month==0){ year-=1;mont ...
java获取当前日期一个月后的日期 -
djcbpl:
好像不行啊!我放进去了,还是错的啊
Can not find the tag library descriptor for "http://java.sun.com/j...
发表评论
-
基于注解 spring aop 示例
2019-03-13 17:19 613import org.springframework.we ... -
spring跨域设置
2018-06-07 15:50 362import org.springframework.ster ... -
spring中scope作用域(转)
2018-04-02 21:08 358今天研究了一下scope的作用域。默认是单例模式,即scope ... -
spring kafka 整合
2018-03-29 21:01 21141.引用POM: <dependency> < ... -
Spring IOC好处
2018-03-27 20:55 597IOC:控制反转,它是不 ... -
Spring Boot 入门
2017-06-16 17:38 0spring Boot是Spring社区较新的一个项目 ... -
spring 测试对外配置文件
2016-10-09 15:45 502ClassPathXmlApplicationConte ... -
spring mvc 详解
2016-08-19 17:20 5302.1、Spring Web MVC是什么 Spring ... -
spring mvc 静态资源访问
2016-08-19 17:10 654spring mvc 的<mvc;resource ... -
Spring junit 整合
2016-06-27 18:20 818package com.mobanker.tkj.cw.t ... -
Spring 线程池配置,更好实践
2016-06-27 17:07 589<bean id="threadP ... -
Spring集成Quartz定时任务框架介绍和Cron表达式详解
2015-07-27 19:08 509在JavaEE系统中,我们会经常用到定时任务,比如每天 ...
相关推荐
综上所述,"POI从数据库查询数据写入Excel工具类"是Java开发中数据处理能力的体现,结合了现代Java语言特性、Maven项目管理和POI的Excel操作,以及数据库连接技术,为企业级数据导出提供了一种高效的解决方案。
本篇文章将深入探讨“C#通用Excel导入导出工具类”的实现原理及应用,主要涉及的技术点包括反射、特性以及如何创建一个高效的Excel导入导出解决方案。 首先,我们要理解反射在C#中的作用。反射是一种强大的机制,它...
Java Excel工具类主要涉及到在Java应用中处理Microsoft Excel文件的操作,包括数据的导入和导出。这个zip文件包含了两个核心的Java源代码文件:ExcelUtils.java和ExcelController.java,它们分别对应于工具类和控制...
标题“spring mvc excel common view”涉及的是Spring MVC框架中处理Excel导出的常见视图技术。在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC...
标题“Excel工具类ExcelUtil”指的是一个用于处理Excel文件的Java工具类,它提供了一系列方法来简化Excel数据的读取、写入和操作。在Java编程中,处理Excel数据是常见的需求,特别是在数据分析、报表生成或者数据...
创建一个Controller类,定义处理Excel上传的接口。使用MultipartFile对象接收上传的文件,调用Service层的方法进行数据处理,并返回响应结果。 8. **前端交互**: 如果是Web应用,前端需要提供一个上传文件的界面...
创建一个名为 OfficeUtils 的工具类,该类提供了读取 Excel 文件的方法。该类使用 Apache POI 库读取 Excel 文件,并将数据存储在 Map 中。 ```java public class OfficeUtils { protected static final Logger ...
- 如果需要更高级的功能,比如动态生成模板、复杂的公式计算或图表生成,可以考虑扩展这个组件或者引入其他专门处理Excel的工具库。 以上是对"Excel View 4 Spring"组件及其相关源码文件的一个初步解读,具体功能...
该工程的核心部分很可能是`ExcelUtil`类,这是一个工具类,包含了一系列静态方法,用于处理Excel的相关操作。这些方法可能包括: 1. **导入Excel**:这通常涉及到读取Excel文件中的数据,如行、列和单元格,然后将...
##### 4.1 ImportExcelUtil.java(Excel解析工具类) ```java package com.poiexcel.util; import java.io.IOException; import java.io.InputStream; import java.text.DecimalFormat; import java.text....
EasyExcel是阿里巴巴提供的一款轻量级的Java处理Excel工具,它可以高效且低内存地处理大量Excel数据。本项目"spring-boot-excel"正是将这两个强大的技术结合在一起,为开发者提供了在Spring Boot应用中进行Excel导入...
2. 创建一个处理Excel导出的Service类,使用POI API创建HSSFWorkbook对象,定义工作表和样式。 3. 使用循环遍历需要导出的数据,并填充到工作表的单元格中。 4. 将Workbook对象写入到HttpServletResponse的...
在IT行业中,Spring框架是...结合Spring MVC的灵活性、Apache POI的强大文件处理能力以及Maven的项目管理,开发者可以构建出强大且易于维护的数据导入导出系统,这对于任何需要大量处理Excel数据的项目都是至关重要的。
5. **响应处理**:在Spring MVC的Controller方法中,创建一个`ResponseEntity`对象,设置其状态码为200(OK),并指定Content-Type为“application/vnd.ms-excel”,这样浏览器会自动触发文件下载。然后,使用`...
有了这个工具类,我们可以方便地处理Excel文件中的不同类型的单元格数据。例如,当单元格存储的是日期时,我们可以将其转换为指定格式的字符串;对于数值型单元格,我们可以确保返回的字符串不使用科学计数法。 接...
在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据...在实际项目中,可能还需要结合其他工具或库,如使用Spring的`Resource`处理文件资源,或者使用模板引擎如FreeMarker生成复杂的Excel报告。
spring boot2快速导出excel的示例源码 操作系统:windows10 JAVA jdk:1.8 开发工具:IDEA java架构:spring boot 2.1.6 gitHub:https://github.com/cn-h-jar/exportexcel 作者:jar 运行提示: 启动项目...
综上所述,这个"导出表格工具类"可能涉及到的技术点包括但不限于Java文件操作、CSV与Excel处理、Spring MVC的Controller机制、性能优化策略、异常处理和测试。这些知识对于提升Java开发者在企业级应用中的工作效率和...
对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...
本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....