From 99d75e1e2708c383faf014c1dcdce6da19a9092f Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期五, 31 五月 2024 15:41:12 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 125 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 118 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java index cd21bd0..646d5a2 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; @@ -16,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; @Service public class AutoReplenishmentHandler extends AbstractHandler<String> { @@ -34,7 +37,27 @@ private WrkDetlService wrkDetlService; @Autowired private OrderService orderService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + + @Transactional + public ReturnT<String> create(Mat mat, double anfme) { + //鍒涘缓涓�涓柊鐨勮嚜鍔ㄨˉ璐у崟鎹� + Order order = createOrder(); + orderService.insert(order); + OrderDetl orderDetl = createOrderDetl(order); + orderDetl.setMatnr(mat.getMatnr()); + orderDetl.setMaktx(mat.getMaktx()); + orderDetl.setSpecs(mat.getSpecs()); + orderDetl.setAnfme(anfme); + orderDetl.setQty(0.0); + + + orderDetlService.insert(orderDetl); + + return SUCCESS; + } @Transactional public ReturnT<String> start(Order order) { @@ -58,8 +81,64 @@ order.setSettle(2L); orderService.updateById(order); - return SUCCESS; + } + + private Order createOrder(){ + Date now = new Date(); + return new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + "AUTO" + snowflakeIdWorker.nextId(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + 21L, // 鍗曟嵁绫诲瀷 21.鑷姩琛ヨ揣鍗� + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + 9999L, // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + 9999L, // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null // 澶囨敞 + ); + + } + + private OrderDetl createOrderDetl(Order order){ + Date now = new Date(); + OrderDetl orderDetl = new OrderDetl(); + + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(order.getCreateBy()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(order.getCreateBy()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + + return orderDetl; } private Set<String> pakoutLoc(Order order){ @@ -74,16 +153,31 @@ } String matnr = orderDetl.getMatnr(); - String batch = orderDetl.getBatch(); - String csocode = orderDetl.getThreeCode(); - String isocode = orderDetl.getDeadTime(); - Double orderAnfme = orderDetl.getAnfme(); + double orderAnfme = orderDetl.getAnfme(); //List<String> locNosSearch = locDetlService.selectLocNo(matnr); - Set<String> locNosSearch = locDetlService.selectLocNo(matnr, batch, csocode, isocode); + Set<String> locNosSearch = locDetlService.selectLocNos(matnr); - //閲嶆柊鎺掑簭 骞朵笖妫�娴嬭搴撲綅鏄惁鍚病鏈夋枡绠辩爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴� + //杩囨护搴撲綅璐х墿涓洪珮璐х墿 + locNosSearch = locNosSearch.stream().filter(locNo -> { + LocMast locMast = locMastService.selectByLoc(locNo); + if(locMast.getLocType1() == 3){ + return false; + }else { + //涓旀娴嬭搴撲綅鏄惁鍚病鏈夎揣鏋剁爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴� +// LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo) +// .andNew().eq("supp_code", "").or().isNull("supp_code")); + + if(Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))){ + return true; + }else { + return false; + } + } + }).collect(Collectors.toSet()); + + //閲嶆柊鎺掑簭 Set<String> resort = resort(locNosSearch); for(String locNo : resort){ @@ -92,6 +186,17 @@ for (LocDetl locDetl :locDetls){ if(matnr.equals(locDetl.getMatnr())){ orderAnfme -= locDetl.getAnfme(); + }else { + OrderDetl odNew = createOrderDetl(order); + odNew.setMatnr(locDetl.getMatnr()); + odNew.setMaktx(locDetl.getMaktx()); + odNew.setBatch(locDetl.getBatch()); + odNew.setThreeCode(locDetl.getThreeCode()); + odNew.setDeadTime(locDetl.getDeadTime()); + odNew.setSpecs(locDetl.getSpecs()); + odNew.setAnfme(0.0); + odNew.setQty(locDetl.getAnfme()); + orderDetlService.insert(odNew); } } if(orderAnfme <= 0){ @@ -99,6 +204,11 @@ orderDetlService.updateById(orderDetl); break; } + } + if(orderAnfme > 0){ + orderDetl.setAnfme(orderDetl.getAnfme() - orderAnfme); + orderDetl.setQty(orderDetl.getAnfme()); + orderDetlService.updateById(orderDetl); } } @@ -165,6 +275,7 @@ //wrkMast.setModiUser(userId); wrkMast.setModiTime(now); + //琛ヨ揣鏍囪瘑 wrkMast.setMk("Y"); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locNo); -- Gitblit v1.9.1