From 8d0e66e935ead9bfeb4a822c0fefb512e4bf2c85 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 02 十一月 2023 16:33:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OrderController.java | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 211 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 107ea60..8dc4cbe 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -1,5 +1,7 @@ package com.zy.asrs.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -7,15 +9,27 @@ import com.core.annotations.ManagerAuth; import com.core.common.*; import com.core.exception.CoolException; +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.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.IOException; +import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.*; @RestController @@ -33,6 +47,10 @@ private WrkDetlService wrkDetlService; @Autowired private WaitPakinService waitPakinService; + @Autowired + private LocOwnerService locOwnerService; + @Autowired + private OrderLogService orderLogService; @RequestMapping(value = "/order/nav/list/auth") @ManagerAuth @@ -82,24 +100,46 @@ @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") @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟") @Transactional public R formAdd(@RequestBody OrderDomainParam param){ + String prefix = ""; + DocType docType = docTypeService.selectById(param.getDocType()); + if(!Cools.isEmpty(docType)){ + prefix = docType.getPakin() == 1 ? "RK" : "CK"; + } if(Cools.isEmpty(param.getOrderNo())){ - String prefix = ""; - DocType docType = docTypeService.selectById(param.getDocType()); - if(!Cools.isEmpty(docType)){ - prefix = docType.getPakin() == 1 ? "RK" : "CK"; - } param.setOrderNo(prefix + snowflakeIdWorker.nextId()); } Order order = orderService.selectByNo(param.getOrderNo()); + OrderLog orderLog = orderLogService.selectByNo(param.getOrderNo()); if (order != null) { return R.error("鍗曟嵁缂栧彿宸插瓨鍦�"); + } + 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( @@ -143,6 +183,14 @@ } List<DetlDto> list = new ArrayList<>(); for (OrderDetl orderDetl : param.getOrderDetlList()) { + if (Cools.isEmpty(orderDetl.getOwner())){ + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�,璇疯緭鍏ヨ揣涓荤紪鍙�"); + }else { + LocOwner locOwner = locOwnerService.selectById(orderDetl.getOwner()); + if (Cools.isEmpty(locOwner)){ + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�,璇疯緭鍏ュ瓨鍦ㄧ殑璐т富缂栧彿锛堟暣鏁帮級"); + } + } if (orderDetl.getBatch() == null) { orderDetl.setBatch(""); } @@ -163,6 +211,10 @@ orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); + if(orderDetl.getPayment() == null){ + orderDetl.setPayment(1); + } + orderDetl.setUuid(String.valueOf(System.currentTimeMillis())); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); } @@ -179,6 +231,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(); // 淇敼涓绘。 @@ -336,6 +399,18 @@ } return R.ok(); } + @RequestMapping(value = "/order/print/auth") + @ManagerAuth(memo = "璁㈠崟缂栫爜鎵撳嵃") + public R orderPrint(@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("/order/in") public R in(@RequestBody JSONObject param){ @@ -343,4 +418,134 @@ return R.ok(); } + @RequestMapping(value = "/order/printExport/auth") + // @ManagerAuth(memo = "鐩樼偣鍗曞鍑�") + public void export(HttpServletResponse response, @RequestParam String orderNo) throws IOException { + //浠庢暟鎹簱鏌ヨ鏁版嵁 + EntityWrapper<OrderDetl> locCheckEntityWrapper = new EntityWrapper<>(); + locCheckEntityWrapper.eq("order_no",orderNo); + List<OrderDetl> list = orderDetlService.selectList(locCheckEntityWrapper); + List<OrderDetlVo> orderDetlVos=new ArrayList<>(); + for (OrderDetl o:list) { + OrderDetlVo orderDetlVo=new OrderDetlVo(); + orderDetlVo.setOrderNo(o.getOrderNo()); + orderDetlVo.setMatnr(o.getMatnr()); + orderDetlVo.setMaktx(o.getMaktx()); + orderDetlVo.setSpecs(o.getSpecs()); + orderDetlVo.setOwner(o.getOwner$()); + orderDetlVo.setPayment(o.getPayment$()); + orderDetlVo.setAnfme(o.getAnfme()); + orderDetlVo.setQty(o.getQty()); + orderDetlVo.setWorkQty(o.getWorkQty()); + orderDetlVo.setWeight(o.getWeight()); + orderDetlVos.add(orderDetlVo); + } + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("鍗曟嵁", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName+ orderNo + ".xlsx"); + Set<String> includeColumnFiledNames = new HashSet<String>(); + includeColumnFiledNames.add("orderNo"); + includeColumnFiledNames.add("matnr"); + includeColumnFiledNames.add("maktx"); + includeColumnFiledNames.add("specs"); + includeColumnFiledNames.add("owner"); + includeColumnFiledNames.add("payment"); + includeColumnFiledNames.add("anfme"); + includeColumnFiledNames.add("qty"); + includeColumnFiledNames.add("workQty"); + includeColumnFiledNames.add("weight"); + EasyExcel.write(response.getOutputStream(), OrderDetlVo.class) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .includeColumnFiledNames(includeColumnFiledNames) + .sheet("琛�1") + .doWrite(orderDetlVos); + } + + @RequestMapping(value = "/order/list/all") + public R orderList() { + + 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); + } + + @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