| | |
| | | package org.jeecg.modules.cms.controller; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | import java.io.IOException; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLDecoder; |
| | | import java.util.*; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.system.query.QueryGenerator; |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | import org.jeecg.modules.cms.entity.CuttingInbound; |
| | | import org.jeecg.modules.cms.entity.CuttingInboundDetail; |
| | | import org.jeecg.modules.cms.mapper.CuttingInboundMapper; |
| | | import org.jeecg.modules.cms.service.ICuttingInboundDetailService; |
| | | import org.jeecg.modules.cms.service.ICuttingInboundService; |
| | | |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import org.jeecgframework.poi.excel.ExcelImportUtil; |
| | | import org.jeecg.modules.cms.vo.CuttingInboundExportVo; |
| | | import org.jeecgframework.poi.excel.def.NormalExcelConstants; |
| | | import org.jeecgframework.poi.excel.entity.ExportParams; |
| | | import org.jeecgframework.poi.excel.entity.ImportParams; |
| | | import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; |
| | | import org.jeecg.common.system.base.controller.JeecgController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import org.springframework.web.multipart.MultipartHttpServletRequest; |
| | | import org.springframework.web.servlet.ModelAndView; |
| | | import com.alibaba.fastjson.JSON; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.jeecg.common.aspect.annotation.AutoLog; |
| | |
| | | |
| | | @Autowired |
| | | private ICuttingInboundDetailService cuttingInboundDetailService; |
| | | |
| | | @Autowired |
| | | private CuttingInboundMapper cuttingInboundMapper; |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | |
| | | */ |
| | | //@RequiresPermissions("org.jeecg.modules:cms_cutting_inbound:exportXls") |
| | | @RequestMapping(value = "/exportXls") |
| | | public ModelAndView exportXls(HttpServletRequest request, CuttingInbound cuttingInbound) { |
| | | return super.exportXls(request, cuttingInbound, CuttingInbound.class, "刀具入库单"); |
| | | public ModelAndView exportXls(CuttingInbound cuttingInbound, HttpServletRequest request) { |
| | | // return super.exportXls(request, cuttingInbound, CuttingInbound.class, "刀具入库单"); |
| | | // 获取查询条件 |
| | | QueryWrapper<CuttingInbound> queryWrapper = QueryGenerator.initQueryWrapper(cuttingInbound, request.getParameterMap()); |
| | | |
| | | // 查询主表数据 |
| | | List<CuttingInbound> pageList = cuttingInboundService.list(queryWrapper); |
| | | |
| | | // 为每个主表数据设置明细数据 |
| | | List<CuttingInboundExportVo> exportList = new ArrayList<>(); |
| | | for (CuttingInbound item : pageList) { |
| | | CuttingInboundExportVo exportVo = new CuttingInboundExportVo(); |
| | | // 复制主表字段 |
| | | exportVo.setId(item.getId()); |
| | | exportVo.setReceiver(item.getReceiver()); |
| | | exportVo.setReceiveTime(item.getReceiveTime()); |
| | | exportVo.setReceiveComment(item.getReceiveComment()); |
| | | exportVo.setConfirmer(item.getConfirmer()); |
| | | exportVo.setConfirmTime(item.getConfirmTime()); |
| | | exportVo.setConfirmComment(item.getConfirmComment()); |
| | | exportVo.setOrderStatus(item.getOrderStatus()); |
| | | |
| | | // 查询并设置明细数据 |
| | | List<CuttingInboundDetail> details = cuttingInboundDetailService.lambdaQuery() |
| | | .eq(CuttingInboundDetail::getOrderId, item.getId()) |
| | | .list(); |
| | | exportVo.setDetailList(details); |
| | | |
| | | exportList.add(exportVo); |
| | | } |
| | | |
| | | // 设置导出参数 |
| | | ExportParams params = new ExportParams("刀具入库单", "导出数据"); |
| | | |
| | | // 返回Excel视图 |
| | | ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
| | | mv.addObject(NormalExcelConstants.PARAMS, params); |
| | | mv.addObject(NormalExcelConstants.DATA_LIST, exportList); |
| | | mv.addObject(NormalExcelConstants.CLASS, CuttingInboundExportVo.class); |
| | | |
| | | return mv; |
| | | } |
| | | |
| | | /** |
| | |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, CuttingInbound.class); |
| | | // MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | // Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | // |
| | | // for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
| | | // MultipartFile file = entity.getValue(); |
| | | // ImportParams params = new ImportParams(); |
| | | // params.setTitleRows(1); |
| | | // params.setHeadRows(1); |
| | | // try { |
| | | // // 解析Excel文件 |
| | | // List<CuttingInbound> list = ExcelImportUtil.importExcel(file.getInputStream(), CuttingInbound.class, params); |
| | | // |
| | | // for (CuttingInbound cuttingInbound : list) { |
| | | // // 保存主表数据 |
| | | // cuttingInboundService.save(cuttingInbound); |
| | | // |
| | | // // 获取主表ID |
| | | // String orderId = cuttingInbound.getId(); |
| | | // |
| | | // // 处理从表数据 |
| | | // List<CuttingInboundDetail> detailList = cuttingInbound.getDetailList(); // 假设主表实体中有从表数据列表 |
| | | // if (detailList != null && !detailList.isEmpty()) { |
| | | // for (CuttingInboundDetail detail : detailList) { |
| | | // detail.setOrderId(orderId); // 设置外键关联 |
| | | // cuttingInboundDetailService.save(detail); |
| | | // } |
| | | // } |
| | | // } |
| | | // return Result.ok("导入成功"); |
| | | // } catch (Exception e) { |
| | | // log.error("导入失败", e); |
| | | // return Result.error("导入失败"); |
| | | // } |
| | | // } |
| | | // return Result.error("导入失败"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据入库id查询入库明细 |
| | | * |