From ac0f708807b8876b23b59dfce0d41a146323428a Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 08 一月 2025 16:59:29 +0800 Subject: [PATCH] #平库出库 --- src/main/resources/mapper/ManLocDetlMapper.xml | 36 +++++++ src/main/java/com/zy/asrs/controller/OrderController.java | 19 +++ src/main/java/com/zy/asrs/entity/param/CombParam.java | 6 + src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 41 +++++++ src/main/java/com/zy/asrs/entity/WrkMast.java | 2 src/main/resources/mapper/WrkMastMapper.xml | 1 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 116 +++++++++++++++++++++++ src/main/java/com/zy/asrs/service/ManLocDetlService.java | 2 src/main/java/com/zy/asrs/controller/MobileController.java | 11 ++ src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 4 src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java | 3 src/main/java/com/zy/asrs/service/MobileService.java | 2 12 files changed, 234 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 8986c3f..ba1e078 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -308,6 +308,17 @@ return R.ok(); } + @RequestMapping("/pingKu/unShelves/auth") + @ManagerAuth(memo = "骞冲簱涓嬫灦") + public R pingKuUnShelves(@RequestBody CombParam combParam){ + if (Cools.isEmpty(combParam.getLocno(), combParam.getCombMats())) { + throw new CoolException(BaseRes.PARAM); + } + mobileService.pingKuUnShelves(combParam, getUserId()); + + return R.ok(); + } + @RequestMapping("/pack/get/auth") @ManagerAuth public R packGet(@RequestParam String barcode){ diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index e21e0ad..5a44740 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -78,6 +78,25 @@ return R.ok().add(orderPage); } + @RequestMapping(value = "/order/list/pda/page/out/auth") + @ManagerAuth + public R pdaPageListOut(@RequestParam(required = true)Long tagId, + @RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit){ + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); + ArrayList<Integer> arrayList = new ArrayList<>(); + docTypes.forEach(docType -> { + arrayList.add(docType.getDocId().intValue()); + }); + EntityWrapper<Order> wrapper = new EntityWrapper<>(); +// wrapper.eq("tag_id", tagId); + wrapper.in("doc_type", arrayList); + wrapper.in("settle",1,2); + wrapper.orderBy("create_time", false); + Page<Order> orderPage = orderService.selectPage(new Page<>(curr, limit), wrapper); + return R.ok().add(orderPage); + } + @RequestMapping(value = "/order/nav/list/auth") @ManagerAuth public R navList(@RequestParam(required = false) String orderNo){ diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index cac671e..4c3374f 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -398,7 +398,7 @@ if (!Cools.isEmpty(locMast)){ return String.valueOf(locMast.getLocNo()); } - return null; + return this.sourceLocNo; } public String getIoTime$(){ diff --git a/src/main/java/com/zy/asrs/entity/param/CombParam.java b/src/main/java/com/zy/asrs/entity/param/CombParam.java index d1d5cfd..3c27eb1 100644 --- a/src/main/java/com/zy/asrs/entity/param/CombParam.java +++ b/src/main/java/com/zy/asrs/entity/param/CombParam.java @@ -40,6 +40,12 @@ // 瑙勬牸 private String specs; + private String supp; + + private String temp1; + + private String temp2; + } } diff --git a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java index 4eac4f1..c37099b 100644 --- a/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java @@ -1,6 +1,7 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.result.StockVo; import org.apache.ibatis.annotations.Mapper; @@ -53,7 +54,7 @@ // ------------------------------------------------- - List<ManLocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos); + List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos, @Param("supp")String supp, @Param("temp1")String temp1, @Param("temp2")String temp2); Double queryStockAnfme(String matnr, String batch); diff --git a/src/main/java/com/zy/asrs/service/ManLocDetlService.java b/src/main/java/com/zy/asrs/service/ManLocDetlService.java index d6761c8..7d3d0e8 100644 --- a/src/main/java/com/zy/asrs/service/ManLocDetlService.java +++ b/src/main/java/com/zy/asrs/service/ManLocDetlService.java @@ -43,7 +43,7 @@ // -------------------------------------------------- - List<ManLocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos); + List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos,String supp,String temp1,String temp2); Double queryStockAnfme(String matnr, String batch); diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index 605f917..4b14a68 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -60,4 +60,6 @@ void inventoryUpload(String orderId); void pingKuShelves(CombParam combParam, Long userId); + + void pingKuUnShelves(CombParam combParam, Long userId); } diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java index e6b362b..9be4095 100644 --- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java @@ -90,8 +90,8 @@ } @Override - public List<ManLocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos) { - return this.baseMapper.queryStock(matnr, batch, orderNo, locNos); + public List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos,String supp,String temp1,String temp2) { + return this.baseMapper.queryStock(matnr, batch, orderNo, locNos,supp,temp1,temp2); } @Override diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 2061981..f81a2ea 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -1096,11 +1096,127 @@ wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿 wrkDetl.setTemp1(detlDto.getTemp1()); wrkDetl.setTemp2(detlDto.getTemp2()); + wrkDetl.setTemp3(detlDto.getSuppName()); + wrkDetl.setTemp4(detlDto.getTemp4()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + orderService.updateSettle(order.getId(), 2L, userId); + + + } + + @Override + @Transactional + public void pingKuUnShelves(CombParam combParam, Long userId) { + String orderNo = combParam.getOrderNo(); + + Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", combParam.getLocno()).eq("type", 3)); + if (Cools.isEmpty(node)){ + throw new CoolException("鏈壘鍒板簱浣嶄俊鎭�"); + } + //鏍规嵁璁㈠崟鍙风敓鎴愬嚭搴撲换鍔″伐浣滄。 + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo)); + if (order.getSettle() != 1 && order.getSettle() != 2){ + throw new CoolException("璇ヨ鍗曞凡澶勭悊"); + } + List<DetlDto> detlDtos = new ArrayList<>(); + for (CombParam.CombMat elem : combParam.getCombMats()) { + Wrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<ManLocDetl>().eq("loc_no", combParam.getLocno()) + .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch()) + .eq("temp3", elem.getSupp()).eq("temp1", elem.getTemp1()).eq("temp2", elem.getTemp2()); + ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper); + + if (Cools.isEmpty(manLocDetl)){ + throw new CoolException("璇ュ簱浣嶆湭鏌ヨ鍒拌揣鐗╀俊鎭�"); + } + if (elem.getAnfme()> manLocDetl.getAnfme()){ + throw new CoolException("鍑哄簱鏁伴噺澶т簬搴撲綅鍓╀綑鏁伴噺"); + } + + OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); + if (Cools.isEmpty(orderDetl)) { + throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�"); + } + if (elem.getAnfme() > orderDetl.getEnableQty()) { + throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getSuppCode() + , orderDetl.getManu(),orderDetl.getSku(),orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2(),orderDetl.getTemp3(),orderDetl.getTemp4()); + + + int workNo = commonService.getWorkNo(4); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(14L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(301); // 鍏ュ嚭搴撶姸鎬侊細301.骞冲簱鍑哄簱 + wrkMast.setIoPri(12D); // 浼樺厛绾� + wrkMast.setSourceLocNo(node.getName()); + wrkMast.setBarcode(""); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setSheetNo(order.getOrderNo()); + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + Mat mat = matService.selectByMatnr(detlDto.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + WrkDetl wrkDetl = new WrkDetl(); + + wrkDetl.sync(detlDto); + wrkDetl.sync(mat); + + wrkDetl.setOrderNo(order.getOrderNo()); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setManu(detlDto.getMark()); //鏍囪 + wrkDetl.setOrigin(order.getItemName());//浠撳簱 + wrkDetl.setSupp(detlDto.getSuppName()); //渚涘簲鍟� + wrkDetl.setSku(detlDto.getCustomer()); //瀹㈡埛鍚嶇О + wrkDetl.setThreeCode(detlDto.getOrderNo()); //u8鍙戣繃鏉ョ殑璁㈠崟鍙� + wrkDetl.setSuppCode(detlDto.getFromOrderNo()); //鏉ユ簮鍗曞彿 + wrkDetl.setTemp1(detlDto.getTemp1()); + wrkDetl.setTemp2(detlDto.getTemp2()); wrkDetl.setTemp3(detlDto.getTemp3()); wrkDetl.setTemp4(detlDto.getTemp4()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } + + if (new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue() == 0){ + manLocDetlService.delete(manLocDetlWrapper); + }else { + manLocDetl.setAnfme(new BigDecimal(manLocDetl.getAnfme()).subtract(new BigDecimal(elem.getAnfme())).doubleValue()); + if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)) { + throw new CoolException("鏇存柊鏄庣粏澶辫触"); + } + } + + + + + } orderService.updateSettle(order.getId(), 2L, userId); diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index 1961f9c..8d7d5cd 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -451,12 +451,24 @@ Date now = new Date(); LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); try { - if (null == locMast) { + Node node = null; + if (wrkMast.getIoType() == 301){ + node = nodeService.selectOne(new EntityWrapper<Node>().eq("name",wrkMast.getSourceLocNo()).eq("type",3)); + if (null == node) { // exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]"); + } + assert node != null; + }else { + locMast = locMastService.selectById(wrkMast.getLocNo()); + if (null == locMast) { +// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]"); + } + assert locMast != null; } - assert locMast != null; switch (wrkMast.getIoType()) { // 鍏ㄦ澘鍑哄簱 case 101: @@ -523,6 +535,27 @@ } } break; + case 301: + List<WrkDetl> wrkDetls301 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + for (WrkDetl wrkDetl : wrkDetls301) { + // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 + OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + if (orderDetl==null){ + orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null); + } + try { + if(!Cools.isEmpty(orderDetl)){ + if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), + orderDetl.getBatch(),wrkDetl.getAnfme())){ +// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", +// wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + } + } catch (Exception ignore){} + } + break; default: break; } diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/ManLocDetlMapper.xml index 9965e02..a6f79f7 100644 --- a/src/main/resources/mapper/ManLocDetlMapper.xml +++ b/src/main/resources/mapper/ManLocDetlMapper.xml @@ -317,6 +317,42 @@ <select id="sum" resultType="java.lang.Double"> SELECT SUM(anfme) FROM man_loc_detl </select> + <select id="queryStock" resultMap="BaseResultMap"> + select a.* + from man_loc_detl a + where 1=1 + and b.loc_sts = 'F' + and a.matnr = #{matnr} + <if test="supp != null and supp != ''"> + and a.supp = #{supp} + </if> + <if test="temp1 != null and temp1 != ''"> + and a.temp1 = #{temp1} + </if> + <if test="temp2 != null and temp2 != ''"> + and a.temp2 = #{temp2} + </if> + <if test="batch != null and batch != ''"> + and a.batch = #{batch} + </if> + <if test="orderNo != null and orderNo != ''"> + and a.order_no = #{orderNo} + </if> + + <if test="locNos != null and locNos.size > 0"> + and b.loc_no not in + <foreach item="item" collection="locNos" index="index" separator="," open="(" close=")"> + #{item} + </foreach> + </if> + + order by + DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme + desc + + + + </select> <update id="updateLocNo0"> diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index 7c417dd..cfe0813 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/src/main/resources/mapper/WrkMastMapper.xml @@ -69,6 +69,7 @@ <select id="selectToBeHistoryData" resultMap="BaseResultMap"> select * from asr_wrk_mast where wrk_sts=5 + or (wrk_sts=15 and io_type= 301) or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) <= getdate() or dateadd(mi,1,modi_time) <= getdate()) and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and (dateadd(mi,5,crn_end_time) <= getdate() or dateadd(mi,1,modi_time) <= getdate()) and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp)) -- Gitblit v1.9.1