zoukankan      html  css  js  c++  java
  • 任务导出

    @GetMapping("/download")
    @ApiOperation("任务导出")
    public R download(@RequestParam(required = false)@ApiParam("搜索条件") String keywordName,
    @RequestParam(required = false)@ApiParam("搜索关键字") String keyword,
    @RequestParam(required = false)@ApiParam("起始时间") String startTime,
    @RequestParam(required = false)@ApiParam("结束时间") String endTime,
    @RequestParam(required = false)@ApiParam("业务类型") Integer businessType,
    @RequestParam(required = false)@ApiParam("执行状态") Integer status,
    @RequestParam(required = false)@ApiParam("客户来源(客户编码)") String customerCode,
    @CurrentUser PaperUser sysUser,
    HttpServletResponse response){
    if (sysUser == null){
    return R.error("请重新登录").setCode(401);
    }
    String roleType = RoleUtils.getRoleCustomerCode(sysUser);
    if(!StringUtil.isEmpty(roleType)){
    customerCode = roleType;
    }
    String column = null;
    if(!StringUtil.isEmpty(keywordName) && !StringUtil.isEmpty(keyword)){
    switch (keywordName){
    case "任务编号":
    column = "task_no";
    break;
    case "订单号":
    column = "order_no";
    break;
    case "员工工号":
    column = "job_number";
    break;
    case "员工姓名":
    column = "emp_name";
    break;
    default:
    break;
    }
    }
    QueryWrapper<DistributionTask> queryWrapper = new QueryWrapper<>();
    queryWrapper.like(!StringUtil.isEmpty(column),column,keyword).lambda()
    .le(!StringUtil.isEmpty(endTime),DistributionTask::getExecuteTime,endTime)
    .ge(!StringUtil.isEmpty(startTime),DistributionTask::getExecuteTime,startTime)
    .eq(businessType != null,DistributionTask::getBusinessType,businessType)
    .eq(status != null,DistributionTask::getStatus,status)
    .eq(!StringUtil.isEmpty(customerCode),DistributionTask::getCustomerCode,customerCode).eq(DistributionTask::getDel,1);
    ExcelWriter writer = ExcelUtil.getWriter(false);
    List<String> head = Arrays.asList("序号", "任务编号", "订单编号","员工工号", "员工姓名", "备注", "来源客户", "客户位置编码", "任务时间", "商品名称", "商品规格", "商品数量", "业务类型", "任务状态", "揽件距离", "揽件时间"
    ,"揽件原因", "派件距离", "派件时间", "派件原因", "任务完成状态");
    writer.writeHeadRow(head);
    List<DistributionTask> taskList = distributionTaskService.list(queryWrapper);
    int j = 0;
    for(DistributionTask task:taskList){

    List<TaskGoods> taskGoodsList = taskGoodsService.list(new QueryWrapper<TaskGoods>().lambda().eq(TaskGoods::getTaskId,task.getId()));
    for (TaskGoods taskGoods : taskGoodsList){
    writer.writeRow(Arrays.asList(++j,task.getTaskNo(),task.getOrderNo(),task.getJobNumber(),task.getEmpName(),task.getRemark(),task.getCustomerName(),task.getCusLocationCode(),task.getExecuteTime(),taskGoods.getGoodsName(),taskGoods.getGoodsSpell(),
    taskGoods.getCount(),BusinessTypeEnum.getDesc(task.getBusinessType()),TaskStatusEnum.valueOf(task.getStatus()).getMsg(),task.getPackageDistance(),task.getPackageTime(),task.getPackageReason(),task.getDeliveryDistance(),task.getDeliveryTime(),task.getDeliveryReason(),TaskFinishStatusEnum.valueOf(task.getClassify()).getMsg()));
    }
    }

    //设置宽度
    for (int i = 0; i < head.size(); i++) {
    writer.setColumnWidth(i, 30);
    }
    R r = null;
    try {
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    response.setHeader("Content-Disposition",
    "attachment;filename=" + URLEncoder.encode("任务导出", "utf-8") + ".xlsx");
    ServletOutputStream out = response.getOutputStream();
    writer.flush(out);
    r = R.ok();
    } catch (Exception e) {
    e.printStackTrace();
    r = R.error("下载失败");
    }finally {
    writer.close();
    }
    return r;
    }
  • 相关阅读:
    工作
    失败
    理想和一些未来的计划
    安静
    重新开始
    如何度过周末
    放假
    WPF学习笔记-数据采集与监控项目01-登录界面
    VS2017-断点感叹号问题,调试代码显示“当前无法命中断点,还没有为该文档加载任何符号”
    WPF-MVVM模式-表现层的UI框架【学习笔记】
  • 原文地址:https://www.cnblogs.com/pxzbky/p/11911903.html
Copyright © 2011-2022 走看看