From 8f527cfc93518f5db3b90f31f78a358d79bcbb51 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 03 十一月 2023 16:58:04 +0800 Subject: [PATCH] #导出excel单据 --- src/main/java/com/zy/asrs/controller/OrderController.java | 195 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 190 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 4be0ae7..de90edd 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -1,6 +1,10 @@ package com.zy.asrs.controller; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; + +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; @@ -12,17 +16,26 @@ import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.entity.result.LocDetlAll; import com.zy.asrs.entity.result.OrderDetlVo; import com.zy.asrs.service.*; import com.zy.common.CodeRes; +import com.zy.common.config.AdminInterceptor; import com.zy.common.model.DetlDto; +import com.zy.common.utils.BarcodeUtils; +import com.zy.common.utils.QrCode; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.File; import java.io.IOException; +import java.io.OutputStream; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; @@ -45,6 +58,78 @@ private LocOwnerService locOwnerService; @Autowired private OrderLogService orderLogService; + + @RequestMapping(value = "/order/all") + @ManagerAuth + public R statis2(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam Map<String, Object> param) { + + + + Page<Order> stockStatis = orderService.getOrderAll(toPage(curr, limit, param, Order.class)); + + return R.ok().add(stockStatis); + } +// @RequestMapping(value = "/order/export") +// @ManagerAuth +// public void orderExport(HttpServletResponse response,OrderExport orderExport) throws IOException { +// List<OrderDetl> orderNo = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderExport.getOrderNo())); +// +// response.setContentType("application/vnd.ms-excel"); +// response.setCharacterEncoding("utf-8"); +// String templateFileName = +// this.getClass().getClassLoader().getResource("ru.xlsx").getPath();; +// +// String fileName = "complexFill" + System.currentTimeMillis() + ".xlsx"; +// +// response.setHeader("Content-disposition", "attachment;filename=" + fileName); +// ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build(); +// WriteSheet writeSheet = EasyExcel.writerSheet().build(); +// // 杩欓噷娉ㄦ剰 鍏ュ弬鐢ㄤ簡forceNewRow 浠h〃鍦ㄥ啓鍏ist鐨勬椂鍊欎笉绠ist涓嬮潰鏈夋病鏈夌┖琛� 閮戒細鍒涘缓涓�琛岋紝鐒跺悗涓嬮潰鐨勬暟鎹線鍚庣Щ鍔ㄣ�傞粯璁� 鏄痜alse锛屼細鐩存帴浣跨敤涓嬩竴琛岋紝濡傛灉娌℃湁鍒欏垱寤恒�� +// // forceNewRow 濡傛灉璁剧疆浜唗rue,鏈変釜缂虹偣 灏辨槸浠栦細鎶婃墍鏈夌殑鏁版嵁閮芥斁鍒板唴瀛樹簡锛屾墍浠ユ厧鐢� +// // 绠�鍗曠殑璇� 濡傛灉浣犵殑妯℃澘鏈塴ist,涓攍ist涓嶆槸鏈�鍚庝竴琛岋紝涓嬮潰杩樻湁鏁版嵁闇�瑕佸~鍏� 灏卞繀椤昏缃� forceNewRow=true 浣嗘槸杩欎釜灏变細鎶婃墍鏈夋暟鎹斁鍒板唴瀛� 浼氬緢鑰楀唴瀛� +// // 濡傛灉鏁版嵁閲忓ぇ list涓嶆槸鏈�鍚庝竴琛� 鍙傜収涓嬩竴涓� +// FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); +// excelWriter.fill(orderNo, fillConfig, writeSheet); +//// excelWriter.fill(orderNo, fillConfig, writeSheet); +// Map<String, Object> map = new HashMap<String, Object>(); +// map.put("date", "2019骞�10鏈�9鏃�13:28:28"); +// map.put("total", 1000); +// excelWriter.fill(map, writeSheet); +// excelWriter.finish(); +// +// +// } + + @RequestMapping("/download_excel") + public void downloadExcel(HttpServletResponse response,@RequestParam String orderNo) throws IOException { + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = "Order " + orderNo + ".xlsx"; + response.setHeader("Content-disposition", "attachment;filename=" + fileName); + + OutputStream outputStream = response.getOutputStream(); + orderExport(outputStream, orderNo); + outputStream.flush(); + outputStream.close(); + } + + public void orderExport(OutputStream outputStream, String orderNo) throws IOException { + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo)); + + String templateFileName = this.getClass().getClassLoader().getResource("ru.xlsx").getPath(); + + ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(templateFileName).build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + excelWriter.fill(orderDetls, fillConfig, writeSheet); + Map<String, Object> map = new HashMap<String, Object>(); + map.put("date", "2019骞�10鏈�9鏃�13:28:28"); + map.put("orderNo", orderNo); + excelWriter.fill(map, writeSheet); + excelWriter.finish(); + } @RequestMapping(value = "/order/nav/list/auth") @ManagerAuth @@ -94,7 +179,16 @@ @RequestMapping(value = "/order/detl/all/auth") @ManagerAuth public R head(@RequestParam Long orderId){ - return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId))); + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId)); + List<OrderDetl> orderDetls1 = new ArrayList<>(); + for (OrderDetl orderDetl : orderDetls){ + double v = orderDetl.getAnfme() - orderDetl.getWorkQty(); + double v1 = new BigDecimal(v).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + if (v1!=0.0){ + orderDetls1.add(orderDetl); + } + } + return R.ok().add(orderDetls1); } @RequestMapping(value = "/order/form/add/auth") @@ -116,6 +210,15 @@ } if (orderLog != null) { return R.error("鍗曟嵁缂栧彿鍦ㄥ巻鍙叉。涓凡瀛樺湪"); + } + OrderDetl orderDetl1 = new OrderDetl(); + for (OrderDetl orderDetl : param.getOrderDetlList()) { + if (orderDetl1.getId() == null){ + orderDetl1.sync(orderDetl); + } + if (orderDetl1.getOwner() != orderDetl.getOwner()){ + return R.error("鍚屼釜鍗曟嵁涓彧鑳藉瓨鍦ㄤ竴涓揣涓讳唬鐮�"); + } } Date now = new Date(); order = new Order( @@ -207,6 +310,17 @@ if (order == null || order.getStatus() == 0) { return R.error("璁㈠崟涓嶅瓨鍦�"); } + + OrderDetl orderDetl1 = new OrderDetl(); + for (OrderDetl orderDetl : param.getOrderDetlList()) { + if (orderDetl1.getId() == null){ + orderDetl1.sync(orderDetl); + } + if (orderDetl1.getOwner() != orderDetl.getOwner()){ + return R.error("鍚屼釜鍗曟嵁涓彧鑳藉瓨鍦ㄤ竴涓揣涓讳唬鐮�"); + } + } + Date now = new Date(); Long userId = getUserId(); // 淇敼涓绘。 @@ -391,9 +505,8 @@ locCheckEntityWrapper.eq("order_no",orderNo); List<OrderDetl> list = orderDetlService.selectList(locCheckEntityWrapper); List<OrderDetlVo> orderDetlVos=new ArrayList<>(); - OrderDetlVo orderDetlVo=new OrderDetlVo(); - for (OrderDetl o: - list) { + for (OrderDetl o:list) { + OrderDetlVo orderDetlVo=new OrderDetlVo(); orderDetlVo.setOrderNo(o.getOrderNo()); orderDetlVo.setMatnr(o.getMatnr()); orderDetlVo.setMaktx(o.getMaktx()); @@ -434,10 +547,82 @@ return R.ok(orderService.selectAllorderNo()); } + @RequestMapping(value = "/order/list/AllCu") + @ManagerAuth + public R orderCuList(@RequestParam(required = false) String orderNo){ + EntityWrapper<Order> wrapper = new EntityWrapper<>(); + if (!Cools.isEmpty(orderNo)) { + wrapper.like("order_no", orderNo); + } + wrapper.le("settle", 2).eq("status", 1); + wrapper.orderBy("create_time", false); + List<Order> orders = orderService.selectList(wrapper); + // 淇濈暀鍑哄簱鍗� + if (!Cools.isEmpty(orders)) { + Iterator<Order> iterator = orders.iterator(); + while (iterator.hasNext()) { + Order order = iterator.next(); + if (order.getDocType() != null) { + DocType docType = docTypeService.selectById(order.getDocType()); + if (docType != null) { + if (docType.getPakout() == 1) { + iterator.remove(); + } + } + } + } + } + return R.ok().add(orders); + } + + //璁㈠崟缁勬墭2 @RequestMapping(value = "/order/list/orderNo") public R orderListorderNo(@RequestParam String orderNo) { + //鏁伴噺淇敼鎴愪负瀹屾垚鏁伴噺 + List<OrderDetl> orderDetl1=orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",orderNo)); + List<OrderDetl> orderDetls= new ArrayList<OrderDetl>(); + for (OrderDetl o: orderDetl1) { + o.setAnfme(o.getAnfme()-o.getWorkQty()); + BigDecimal c1 = new BigDecimal(o.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); + o.setAnfme(c1.doubleValue()); + orderDetls.add(o); + } + return R.ok(orderDetls); + } - return R.ok(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",orderNo))); + @RequestMapping(value = "/order/print2/auth") + @ManagerAuth(memo = "璁㈠崟缂栫爜鎵撳嵃") + public R manPakOutPrint(@RequestParam(value = "param[]") String[] param) { + if(Cools.isEmpty(param)) { + return R.parse(CodeRes.EMPTY); + } + List<OrderDetl> res = new ArrayList<>(); + for (String orderNo : param){ + res = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo)); + } + return R.ok().add(res); + } + @RequestMapping(value = "/order/code/auth") +// @ManagerAuth(memo = "鐗╂枡缂栫爜鏉″舰鐮佽幏鍙�(type:1(鏉″舰鐮�);2(浜岀淮鐮�)") + public R manPakOutCodeBarcode(@RequestParam(defaultValue = "2") Integer type + , @RequestParam String param + , HttpServletResponse response) throws Exception { + AdminInterceptor.cors(response); + if (Cools.isEmpty(param)){ + return R.parse(BaseRes.EMPTY); + } + BufferedImage img; + if (type == 1) { + img = BarcodeUtils.encode(param); + } else { + img = QrCode.createImg(param); + } + if (!ImageIO.write(img, "jpg", response.getOutputStream())) { + throw new IOException("Could not write an image of format jpg"); + } + response.getOutputStream().flush(); + response.getOutputStream().close(); + return R.ok(); } -- Gitblit v1.9.1