From 2f9fd9af98fb985428de5f766811c4aeb1989069 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 12 六月 2021 16:43:10 +0800
Subject: [PATCH] Merge branch 'htasrs0' of https://gitee.com/luxiaotao1123/zy-asrs into htasrs0

---
 src/main/java/com/zy/asrs/controller/OpenController.java |  103 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 100 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 336b816..555d31b 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.controller;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.annotations.ManagerAuth;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
@@ -18,9 +19,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * Created by vincent on 2021/3/19
@@ -192,5 +191,103 @@
         return R.ok().add(result);
     }
 
+    @PostMapping("/available/take/site")
+    @Transactional
+    public R availableTakeSite(){
+        List<Map<String, Object>> result = new ArrayList<>();
+        List<Integer> outSite = basDevpService.getAvailableOutSite(101);
+        for (Integer siteId : outSite) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("siteId", siteId);
+            map.put("desc", siteId + "锛堝叏鏉垮嚭搴撳彛锛�");
+            result.add(map);
+        }
+        List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
+        for (Integer siteId : pickOutSite) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("siteId", siteId);
+            map.put("desc", siteId + "锛堟嫞鏂欏嚭搴撳彛锛�");
+            result.add(map);
+        }
+        return R.ok().add(result);
+    }
 
+    @PostMapping("/get/asrsLocDetl")
+    @Transactional
+    public R queryLocDetl(String matnr) {
+        List<LocDetl> locDetls = locDetlService.getAsrsLocDetl(matnr);
+        return R.ok().add(locDetls);
+    }
+
+    @PostMapping("/stockOut/locMode")
+    @Transactional
+    public R stockOutLocMode(@RequestBody List<OpenApiStockOutParam> params){
+        List<PakoutVo> result = new ArrayList<>();
+        if (!Cools.isEmpty(params)) {
+            for (OpenApiStockOutParam param : params) {
+                // 鎺ㄨ崘璐т綅琛ヤ粨宸ヤ綔妗i槻閲�
+                if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("packed", param.getAllotNo()).le("wrk_sts", 14)) > 0) {
+                    throw new CoolException("褰撳墠琛ヤ粨浠诲姟姝e湪鎵ц锛岃鑰愬績绛夊緟");
+                }
+                Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
+                if (!Cools.isEmpty(param.getAllotNo()) && sumAnfme < param.getAnfme()) {
+                    throw new CoolException("绔嬪簱搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
+                }
+                double lack = 0.0D;
+                if (sumAnfme < param.getAnfme()) {
+                    lack = param.getAnfme() - sumAnfme;
+                    PakoutVo pakoutVo = new PakoutVo();
+                    pakoutVo.setLocNo("缂鸿揣");
+                    pakoutVo.setAnfme(lack);
+                    pakoutVo.setMatnr(param.getMatnr());
+//                    pakoutVo.setZpallet("param.getZpallet()");
+                    result.add(pakoutVo);
+
+//                    throw new CoolException(param.getMatnr() + "鐗╂枡鏁伴噺涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
+                }
+
+                // 鏍规嵁绔嬪簱搴撲綅鐮佸幓鑾峰彇绔嬪簱淇℃伅
+                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+                if (locDetls.size() == 0) {
+                    throw new CoolException("鏈煡璇㈠埌搴撲綅淇℃伅锛�");
+                }
+                double issued = Optional.of(param.getAnfme()-lack).orElse(0.0D) ;
+                for (LocDetl locDetl : locDetls) {
+                    // 鐢熸垚鍑哄簱宸ヤ綔妗�
+
+                    Integer locNoNum = locDetlService.countLocNoNum(locDetl.getLocNo());
+                    // 鍏ㄦ澘
+                    if (locNoNum == 1) {
+                        BasDevp staNo = basDevpService.checkSiteStatus(103);
+                        List<LocDetlDto> detlDtos = new ArrayList<>();
+                        LocDetlDto dto = new LocDetlDto();
+                        dto.setLocDetl(locDetl);
+                        dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+                        detlDtos.add(dto);
+                        workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()), null);
+                    } else { // 鎷f枡
+                        BasDevp staNo = basDevpService.checkSiteStatus(107);
+                        List<LocDetlDto> detlDtos = new ArrayList<>();
+                        LocDetlDto dto = new LocDetlDto();
+                        dto.setLocDetl(locDetl);
+                        dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+                        detlDtos.add(dto);
+                        workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo(), Cools.isEmpty(param.getAllotNo()), null);
+                    }
+                    PakoutVo pakoutVo = new PakoutVo();
+                    pakoutVo.setLocNo(locDetl.getLocNo());
+                    pakoutVo.setAnfme(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
+                    pakoutVo.setMatnr(locDetl.getMatnr());
+                    pakoutVo.setZpallet(locDetl.getZpallet());
+                    result.add(pakoutVo);
+
+                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+                    issued = issued - locDetl.getAnfme();
+                }
+
+            }
+        }
+
+        return R.ok().add(result);
+    }
 }

--
Gitblit v1.9.1