`
terry0501
  • 浏览: 314626 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring 处理excel 工具类

 
阅读更多

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;
    }
}

分享到:
评论

相关推荐

    POI从数据库查询数据写入Excel工具类

    综上所述,"POI从数据库查询数据写入Excel工具类"是Java开发中数据处理能力的体现,结合了现代Java语言特性、Maven项目管理和POI的Excel操作,以及数据库连接技术,为企业级数据导出提供了一种高效的解决方案。

    C#通用Excel导入导出工具类

    本篇文章将深入探讨“C#通用Excel导入导出工具类”的实现原理及应用,主要涉及的技术点包括反射、特性以及如何创建一个高效的Excel导入导出解决方案。 首先,我们要理解反射在C#中的作用。反射是一种强大的机制,它...

    java-excel(工具类).zip

    Java Excel工具类主要涉及到在Java应用中处理Microsoft Excel文件的操作,包括数据的导入和导出。这个zip文件包含了两个核心的Java源代码文件:ExcelUtils.java和ExcelController.java,它们分别对应于工具类和控制...

    spring mvc excel common view

    标题“spring mvc excel common view”涉及的是Spring MVC框架中处理Excel导出的常见视图技术。在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC...

    Excel工具类ExcelUtil

    标题“Excel工具类ExcelUtil”指的是一个用于处理Excel文件的Java工具类,它提供了一系列方法来简化Excel数据的读取、写入和操作。在Java编程中,处理Excel数据是常见的需求,特别是在数据分析、报表生成或者数据...

    Spring框架实现Excel批量导入数据

    创建一个Controller类,定义处理Excel上传的接口。使用MultipartFile对象接收上传的文件,调用Service层的方法进行数据处理,并返回响应结果。 8. **前端交互**: 如果是Web应用,前端需要提供一个上传文件的界面...

    spring boot读取Excel操作示例

    创建一个名为 OfficeUtils 的工具类,该类提供了读取 Excel 文件的方法。该类使用 Apache POI 库读取 Excel 文件,并将数据存储在 Map 中。 ```java public class OfficeUtils { protected static final Logger ...

    Excel View 4 Spring

    - 如果需要更高级的功能,比如动态生成模板、复杂的公式计算或图表生成,可以考虑扩展这个组件或者引入其他专门处理Excel的工具库。 以上是对"Excel View 4 Spring"组件及其相关源码文件的一个初步解读,具体功能...

    springboot 抽取的一个公用的excel帮助工程

    该工程的核心部分很可能是`ExcelUtil`类,这是一个工具类,包含了一系列静态方法,用于处理Excel的相关操作。这些方法可能包括: 1. **导入Excel**:这通常涉及到读取Excel文件中的数据,如行、列和单元格,然后将...

    SpringMvc+POI 处理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....

    spring-boot-excel springboot整合easyexcel 有注释 打开可以运行

    EasyExcel是阿里巴巴提供的一款轻量级的Java处理Excel工具,它可以高效且低内存地处理大量Excel数据。本项目"spring-boot-excel"正是将这两个强大的技术结合在一起,为开发者提供了在Spring Boot应用中进行Excel导入...

    spring ext 日志管理和导出excel

    2. 创建一个处理Excel导出的Service类,使用POI API创建HSSFWorkbook对象,定义工作表和样式。 3. 使用循环遍历需要导出的数据,并填充到工作表的单元格中。 4. 将Workbook对象写入到HttpServletResponse的...

    spring3.2.5 MVC Poi3.9操作excel批量导入

    在IT行业中,Spring框架是...结合Spring MVC的灵活性、Apache POI的强大文件处理能力以及Maven的项目管理,开发者可以构建出强大且易于维护的数据导入导出系统,这对于任何需要大量处理Excel数据的项目都是至关重要的。

    spring MVC 导出excel

    5. **响应处理**:在Spring MVC的Controller方法中,创建一个`ResponseEntity`对象,设置其状态码为200(OK),并指定Content-Type为“application/vnd.ms-excel”,这样浏览器会自动触发文件下载。然后,使用`...

    SpringBoot整合poi实现Excel文件的导入和导出.pdf

    有了这个工具类,我们可以方便地处理Excel文件中的不同类型的单元格数据。例如,当单元格存储的是日期时,我们可以将其转换为指定格式的字符串;对于数值型单元格,我们可以确保返回的字符串不使用科学计数法。 接...

    Java处理Excel源代码

    在Java编程中,处理Excel文件是一项常见的任务,特别是在数据导入导出、数据...在实际项目中,可能还需要结合其他工具或库,如使用Spring的`Resource`处理文件资源,或者使用模板引擎如FreeMarker生成复杂的Excel报告。

    spring boot2快速导出excel的java工具类demo源码:export-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开发者在企业级应用中的工作效率和...

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    java开发常用工具类

    本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....

Global site tag (gtag.js) - Google Analytics