From d2adac4e369165ec523c23e7ffd19fc5775d43b5 Mon Sep 17 00:00:00 2001 From: mrzhssss <pro6@qq.com> Date: 星期一, 11 四月 2022 08:14:14 +0800 Subject: [PATCH] Changes --- src/main/java/zy/cloud/wms/manager/controller/OrderController.java | 205 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 191 insertions(+), 14 deletions(-) diff --git a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java index 51f26e5..3806cfe 100644 --- a/src/main/java/zy/cloud/wms/manager/controller/OrderController.java +++ b/src/main/java/zy/cloud/wms/manager/controller/OrderController.java @@ -19,22 +19,33 @@ import zy.cloud.wms.common.utils.QrCode; import zy.cloud.wms.common.web.BaseController; import zy.cloud.wms.manager.entity.Order; +import zy.cloud.wms.manager.entity.OrderDetl; +import zy.cloud.wms.manager.entity.Wave; +import zy.cloud.wms.manager.entity.WaveDetl; +import zy.cloud.wms.manager.service.OrderDetlService; import zy.cloud.wms.manager.service.OrderService; +import zy.cloud.wms.manager.service.WaveDetlService; +import zy.cloud.wms.manager.service.WaveService; +import zy.cloud.wms.manager.utils.AddZero; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; @RestController public class OrderController extends BaseController { @Autowired private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private WaveService waveService; + @Autowired + private WaveDetlService waveDetlService; @RequestMapping(value = "/order/{id}/auth") @ManagerAuth @@ -53,11 +64,15 @@ excludeTrash(param); convert(param, wrapper); hostEq(wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} - else { - wrapper.orderBy("update_time", false); + if (!Cools.isEmpty(orderByField)){ + wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType)); } - return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); + else { + wrapper.orderBy("create_time",false); + } + + Page<Order> orderPage = orderService.selectPage(new Page<>(curr, limit), wrapper); + return R.ok(orderPage); } private void convert(Map<String, Object> map, EntityWrapper wrapper){ @@ -107,13 +122,20 @@ @ManagerAuth @Transactional public R deleteBatch(@RequestParam(value = "ids[]") Long[] ids){ - if (Cools.isEmpty((Object) ids)){ - return R.error(); - } - for (Long id : ids){ - if (!orderService.deleteById(id)) { - throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + /*** + * 鎺х + */ + for (Long id : ids) { + Order target = orderService.selectOne(new EntityWrapper<Order>() + .eq("id", id)); + if (target.getSettle() == 0 || target.getSettle() == 1) { + orderService.deleteById(id); + orderDetlService.delete(new EntityWrapper<OrderDetl>() + .eq("order_id",id)); + }else { + throw new CoolException("浠呭厑璁稿垹闄�'鍒濆鍖�','寰呭鐞�'鐘舵�佺殑璁㈠崟"); } + } return R.ok(); } @@ -180,4 +202,159 @@ return R.ok(); } + /** + * 鐢熸垚娉㈡ + */ + @RequestMapping("/orders/wave/auth") + @ManagerAuth + @Transactional + public R createWave(@RequestBody List<Order> orders){ + /** + * 鎺х涓庡垵濮嬪寲 + */ + Integer seqNo = 1; + for (Order order : orders) { + if (order.getSettle() != 1L) { + return R.error("浠呮敮鎸�'寰呭鐞�'鐘舵�佺敓鎴愭尝娆�"); + } + } + + /** + * 鐢熸垚娉㈡琛ㄥご + */ + Wave wave = new Wave(); + wave.setHostId(getHostId()); + String s = UUID.randomUUID().toString().replace("-",""); + wave.setUuid(s); + String waveNo = "WAVE-" + new SimpleDateFormat("yyyyMMdd").format(new Date())+"-"; + String currNum = waveService.getCurrNum(waveNo); + if (!Cools.isEmpty(currNum)) { + String[] split = currNum.split("-"); + if (split.length < 3){ + wave.setWaveNo(waveNo + "0001"); + } else { + Integer newNum = Integer.parseInt(split[2]) + 1; + String format = AddZero.addZeroForNum(newNum + "", 4); + wave.setWaveNo(waveNo + format); + } + }else { + wave.setWaveNo(waveNo + "0001"); + } + + wave.setOrdersQty(orders.size()); + wave.setStatus((short) 0); + wave.setCreateBy(getUserId()); + wave.setUpdateBy(getUserId()); + waveService.insert(wave); + + /** + * 鐢熸垚娉㈡鏄庣粏 + */ + List<OrderDetl> allOrderDetls = orderDetlService.selectBatchByOrderNo(orders); + for (OrderDetl allOrderDetl : allOrderDetls) { + WaveDetl checkWaveDetl = waveDetlService.selectOne(new EntityWrapper<WaveDetl>() + .eq("wave_id",wave.getId()) + .eq("matnr", allOrderDetl.getMatnr()) + .eq("batch", allOrderDetl.getBatch())); + if (Cools.isEmpty(checkWaveDetl)) { + WaveDetl waveDetl = new WaveDetl(); + waveDetl.setHostId(getHostId()); + waveDetl.setWaveId(wave.getId()); + waveDetl.setWaveNo(wave.getWaveNo()); + waveDetl.setSeqNo(seqNo); + seqNo++; + waveDetl.setOrderQty(1); + waveDetl.setOrderNos(allOrderDetl.getOrderNo()); + waveDetl.setAnfme(allOrderDetl.getAnfme()); + waveDetl.setMatnr(allOrderDetl.getMatnr()); + waveDetl.setMaktx(allOrderDetl.getMaktx()); + waveDetl.setSpecs(allOrderDetl.getSpecs()); + waveDetl.setModel(allOrderDetl.getModel()); + waveDetl.setUnit(allOrderDetl.getUnit()); + waveDetl.setStatus(0); + waveDetl.setBatch(allOrderDetl.getBatch()); + waveDetl.setCreateBy(getUserId()); + waveDetl.setUpdateBy(getUserId()); + waveDetlService.insert(waveDetl); + }else { + checkWaveDetl.setOrderQty(checkWaveDetl.getOrderQty()+1); + checkWaveDetl.setOrderNos(checkWaveDetl.getOrderNos() + "," +allOrderDetl.getOrderNo()); + checkWaveDetl.setAnfme(checkWaveDetl.getAnfme() + allOrderDetl.getAnfme()); + waveDetlService.update(checkWaveDetl,new EntityWrapper<WaveDetl>() + .eq("id",checkWaveDetl.getId())); + } + } + + /** + * 鎺х,鍑鸿繃BUG,鍙敓鎴愯〃澶�,涓嶇敓鎴愯〃韬� + */ + if (Cools.isEmpty(allOrderDetls)) { + waveService.delete(new EntityWrapper<Wave>() + .eq("id",wave.getId())); + throw new CoolException("鎵句笉鍒板嚭搴撳崟缁嗚妭,璇疯仈绯荤鐞嗗憳"); + } + /** + * 鍙嶅啓鍑哄簱鍗曡〃澶� + */ + for (Order order : orders) { + order.setWaveNo(wave.getWaveNo()); + order.setSettle(11L); + orderService.update(order,new EntityWrapper<Order>() + .eq("id",order.getId())); + } + return R.ok("宸茬敓鎴愭尝娆�"); + } + + /** + * 閫氳繃鎵瑰彿璁㈠崟涓寘鍚殑鍑哄簱鍗� + */ + + @RequestMapping("/order/orderByWave/auth") + @ManagerAuth + public R getOrderDetailByWave(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param, + String research){ + EntityWrapper<Wave> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + hostEq(wrapper); + wrapper.orderBy("create_time",false); + List<Wave> waves = waveService.selectList(wrapper); + if (Cools.isEmpty(waves)) { + throw new CoolException("鎵句笉鍒拌娉㈡"); + } + + HashSet<String> allOrders = new HashSet<>(); + for (Wave wave : waves) { + List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() + .eq("wave_id", wave.getId())); + for (WaveDetl waveDetl : waveDetls) { + String[] split = waveDetl.getOrderNos().split(","); + for (String s : split) { + allOrders.add(s); + } + } + } + ArrayList<String> allOrdersList = new ArrayList<>(allOrders); + EntityWrapper<OrderDetl> orderDetailWrapper = new EntityWrapper<>(); + for (int i = 0; i < allOrdersList.size(); i++) { + String s = allOrdersList.get(i); + if (i == 0){ + orderDetailWrapper + .eq("order_no",s); + }else { + orderDetailWrapper + .or() + .eq("order_no",s); + } + } + if (!Cools.isEmpty(research)) { + orderDetailWrapper.eq("order_no",research); + } + Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit),orderDetailWrapper); + return R.ok(orderDetlPage); + } } -- Gitblit v1.9.1