From c7bf4b8773f888fd5be613b7bb6fb8ae4a47b028 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期二, 23 四月 2024 16:53:57 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/ManPakOutController.java | 419 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 407 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ManPakOutController.java b/src/main/java/com/zy/asrs/controller/ManPakOutController.java index 39ce18a..10eafa2 100644 --- a/src/main/java/com/zy/asrs/controller/ManPakOutController.java +++ b/src/main/java/com/zy/asrs/controller/ManPakOutController.java @@ -5,13 +5,15 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.common.R; -import com.core.common.SpringUtils; +import com.core.common.*; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.entity.param.PakOutDTO; import com.zy.asrs.service.*; +import com.zy.common.CodeRes; +import com.zy.common.config.AdminInterceptor; +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; @@ -20,6 +22,10 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +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.Date; import java.util.List; @@ -48,9 +54,21 @@ EntityWrapper<ManPakOut> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { - wrapper.orderBy("create_time",false); - } + + return R.ok(manPakOutService.selectPage(new Page<>(curr, limit), wrapper)); + } + + @RequestMapping(value = "/ManPakOut/list/auth1") + @ManagerAuth + public R list1(@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){ + EntityWrapper<ManPakOut> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert1(param, wrapper); + return R.ok(manPakOutService.selectPage(new Page<>(curr, limit), wrapper)); } @@ -64,12 +82,48 @@ EntityWrapper<ManPakOut> wrapper = new EntityWrapper<>(); excludeTrash(param); convert(param, wrapper); - if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { - wrapper.orderBy("create_time",false); + + String docnum = String.valueOf(param.get("doc_num")); + if (Cools.isEmpty(docnum) || docnum.equals("null")) { + docnum = null; } - wrapper.isNotNull("name"); - Page<ManPakOut> manPakOutPage = manPakOutService.selectPage(new Page<>(curr, limit), wrapper); - return R.ok(manPakOutPage); + Date stime = null; + Date etime = null; + if(param.get("create_time") != null){ + String[] dates = param.get("create_time").toString().split(RANGE_TIME_LINK); + stime = DateUtils.convert(dates[0]); + etime = DateUtils.convert(dates[1]); + } + + Long userId = getUserId(); + if(getUser().getRoleId() == 2 || getUser().getRoleId() == 24){ + userId = null; + } + + String custName = Cools.isEmpty(param.get("cust_name")) ? "" : param.get("cust_name").toString(); + + List<PakOutDTO> pakOutDTOS = manPakOutService.selectPakOut(docnum, stime, etime, curr, limit,userId,custName); + for (PakOutDTO pakOutDTO:pakOutDTOS){ + List<ManPakOut> manPakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", pakOutDTO.getDoc_num())); + for (ManPakOut manPakOut:manPakOuts){ + if (manPakOut.getCount() < manPakOut.getAnfme()){ + pakOutDTO.setStatus(0); + break; + } + } + if (pakOutDTO.getStatus() == null){ + pakOutDTO.setStatus(1); + } + + } + + int count = manPakOutService.selectPakOutCount(docnum, stime, etime,curr, limit,userId,custName); + Page<PakOutDTO> page = new Page<>(); + // 鏈�鍚庢寜鐘舵�佹湭鍑哄簱->宸插嚭搴撴帓搴� +// page.setRecords(pakOutDTOS.stream().sorted(Comparator.comparingInt(PakOutDTO::getStatus)).collect(Collectors.toList())); + page.setRecords(pakOutDTOS); + page.setTotal(count); + return R.ok(page); } private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ @@ -83,6 +137,306 @@ wrapper.like(entry.getKey(), val); } } + } + + private <T> void convert1(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.eq(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/ManPakOut/add/auth") + @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") + @Transactional + public R manPakOutAdd(@RequestBody OrderDomainParam param){ + if (Cools.isEmpty(param)){ + return R.error("鏁版嵁寮傚父"); + } + if (!Cools.isEmpty(param.getOrderNo())){ + Order order = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(order)){ + return R.error("鍗曟嵁涓嶅瓨鍦�"); + } + List<OrderDetl> orderDetls =orderDetlService.selectList(new EntityWrapper<OrderDetl>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(orderDetls)){ + return R.error("鍗曟嵁鏄庣粏涓虹┖"); + } + for (OrderDetl orderDetl : orderDetls){ + List<ManLocDetl> manLocDetls=null; + try{ + if (Cools.isEmpty(orderDetl.getBatch())){ + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + ); + }else { + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + .eq("batch",orderDetl.getBatch()) + ); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + + if (!Cools.isEmpty(manLocDetls)){ + for (ManLocDetl manLocDetl:manLocDetls){ + Double statusAnfme = 0.0; + if (Cools.isEmpty(manLocDetl.getStatus())){ + manLocDetl.setStatus(1); + } + try{ + if (manLocDetl.getStatus$().equals("绂佺敤")){ + if (Cools.isEmpty(manLocDetl.getBatch())){ + List<ManPakOut> manPakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (ManPakOut manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + }else { + List<ManPakOut> manPakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("batch",manLocDetl.getBatch()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (ManPakOut manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + } + } + }catch (Exception e){ + return R.error("鏌ヨ搴撳瓨绂佺敤鏁伴噺澶辫触"); + } + Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()); + if (orderDetl.getAnfme() > manLocDetl.getAnfme()-statusAnfme){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()-manLocDetl.getAnfme()-statusAnfme==0){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()<manLocDetl.getAnfme()-statusAnfme){ + Double a=manLocDetl.getAnfme(); + manLocDetl.setAnfme(orderDetl.getAnfme()); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + manLocDetl.setStatus(0); + manLocDetl.setAnfme(a); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else { + return R.error("绯荤粺鍑洪敊,璇疯仈绯荤鐞嗗憳"); + } + if (orderDetl.getAnfme()==0){ + break; + } + } + if (orderDetl.getAnfme()!=0){ + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"搴撳瓨涓嶈冻"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + }else { + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"鏃犲簱瀛�"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + + + } + orderService.updateSettle(order.getId(),(long)2,null); + }else { + return R.error("鍗曟嵁缂栧彿寮傚父"); + } + return R.ok("鎷h揣鍗曟坊鍔犳垚鍔�"); + } + private R addPakOUT(ManLocDetl manLocDetl,String OrderNo){ + ManPakOut manPakOut=new ManPakOut(); + manPakOut.setWrkNo(OrderNo+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(manLocDetl.getAnfme()); + manPakOut.setLocNo(manLocDetl.getLocNo()); + manPakOut.setNodeId(manLocDetl.getNodeId()); + manPakOut.setMatnr(manLocDetl.getMatnr()); + manPakOut.setMaktx(manLocDetl.getMaktx()); + manPakOut.setSpecs(manLocDetl.getSpecs()); + manPakOut.setUnit(manLocDetl.getUnit()); + manPakOut.setBarcode(manLocDetl.getBarcode()); + manPakOut.setDocNum(OrderNo); + manPakOut.setStatus(0); + manPakOut.setCreateTime(new Date()); + if (!Cools.isEmpty(manLocDetl.getBatch())){ + manPakOut.setBatch(manLocDetl.getBatch()); + manPakOut.setUpdateTime(new Date()); + }else { + manPakOut.setUpdateTime(manLocDetl.getModiTime());//鐢ㄤ簬璇嗗埆璐х墿 + } + + manPakOut.setMemo(manLocDetl.getMemo()); + if (Cools.isEmpty(manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num",OrderNo)))){ + manPakOut.setName(manLocDetl.getMaktx()); + } + try{ + if (!manPakOutService.insert(manPakOut)){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok(); + + } + + @RequestMapping("/manPakOut/finish") + public R finish(@RequestBody ManPakOut manPakOut){ + Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>() + .eq("loc_no", manPakOut.getLocNo()) + .eq("matnr", manPakOut.getMatnr()); + try{ + if (Cools.isEmpty(manPakOut.getBatch())){ + List<ManLocDetl> manLocDetls = manLocDetlService.selectList(wrapper); + Double anfme=manPakOut.getAnfme(); + for (ManLocDetl manLocDetl:manLocDetls){ + if (anfme<manLocDetl.getAnfme()){ + manLocDetl.setAnfme(manLocDetl.getAnfme()-anfme); + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + anfme=0.0; + }else if (anfme>=manLocDetl.getAnfme()){ + manLocDetlService.delete(wrapper.eq("batch",manLocDetl.getBatch())); + anfme=anfme-manLocDetl.getAnfme(); + } + if (anfme==0.0){ + break; + } + } + }else { + ManLocDetl manLocDetl = manLocDetlService.selectOne(wrapper.eq("batch", manPakOut.getBatch())); + if (manPakOut.getAnfme()<manLocDetl.getAnfme()){ + manLocDetl.setAnfme(manLocDetl.getAnfme()-manPakOut.getAnfme()); + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + }else if (manPakOut.getAnfme()-manLocDetl.getAnfme()==0){ + manLocDetlService.delete(wrapper.eq("batch",manLocDetl.getBatch())); + } + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨鏁伴噺澶辫触"); + } + + + ManPakOut out = Cools.isEmpty(manPakOut.getBatch())? manPakOutService.selectOne(new EntityWrapper<ManPakOut>() + .eq("wrk_no", manPakOut.getWrkNo()) + .eq("matnr", manPakOut.getMatnr())) + :manPakOutService.selectOne(new EntityWrapper<ManPakOut>() + .eq("wrk_no", manPakOut.getWrkNo()) + .eq("matnr", manPakOut.getMatnr()) + .eq("batch",manPakOut.getBatch())); + out.setWrkSts(manPakOut.getWrkSts()); + out.setZpallet(manPakOut.getZpallet()); + out.setAnfme(manPakOut.getAnfme()); + out.setNodeId(manPakOut.getNodeId()); + out.setLocNo(manPakOut.getLocNo()); + out.setMatnr(manPakOut.getMatnr()); + out.setMaktx(manPakOut.getMaktx()); + out.setBatch(manPakOut.getBatch()); + out.setStatus(manPakOut.getStatus()); + boolean update =Cools.isEmpty(manPakOut.getBatch())? manPakOutService.update(out, new EntityWrapper<ManPakOut>() + .eq("wrk_no", manPakOut.getWrkNo()) + .eq("matnr", manPakOut.getMatnr())) + :manPakOutService.update(out, new EntityWrapper<ManPakOut>() + .eq("wrk_no", manPakOut.getWrkNo()) + .eq("matnr", manPakOut.getMatnr()) + .eq("batch",manPakOut.getBatch())); + try { + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", manPakOut.getDocNum())); + List<ManPakOut> pakOuts = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", order.getOrderNo())); + if (Cools.isEmpty(pakOuts)){ + return R.error("鏌ヨ鎷h揣鍗曟槑缁嗗け璐�"); + }else { + Long settle = order.getSettle(); + for (ManPakOut pakOut:pakOuts){ + if (pakOut.getStatus()==0 || pakOut.getStatus()==8){ + order.setSettle(settle); + break; + }else { + order.setSettle(4L); + } + } + } + orderService.updateSettle(order.getId(),order.getSettle(),(long)9527); + }catch (Exception e){ + return R.error("鏇存柊璁㈠崟鐘舵�佸け璐�"); + } + return update? R.ok("鏇存柊鎴愬姛") : R.error("鏇存柊澶辫触"); } @RequestMapping("/manPakOut/notIssued") @@ -101,4 +455,45 @@ } return R.ok(orders1); } + + public static void main(String[] args) { + ManPakOutService bean = SpringUtils.getBean(ManPakOutService.class); + ManPakOut out = bean.selectOne(null); + System.out.println("JSON.toJSONString(out) = " + JSON.toJSONString(out)); + } + + @RequestMapping(value = "/ManPakOut/print/auth") + @ManagerAuth(memo = "璁㈠崟缂栫爜鎵撳嵃") + public R manPakOutPrint(@RequestParam(value = "param[]") String[] param) { + if(Cools.isEmpty(param)) { + return R.parse(CodeRes.EMPTY); + } + List<ManPakOut> res = new ArrayList<>(); + for (String orderNo : param){ + res = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", orderNo)); + } + return R.ok().add(res); + } + @RequestMapping(value = "/ManPakOut/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