From bd2afd2e8f9d093171874aface09dadf63211d7c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 22 三月 2021 16:28:10 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OpenController.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index f43c842..26d82d1 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -3,12 +3,17 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.MatCode;
 import com.zy.asrs.entity.param.OpenApiStockOutParam;
+import com.zy.asrs.entity.result.PakoutVo;
 import com.zy.asrs.entity.result.StoPreTab;
+import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.LocDetlService;
 import com.zy.asrs.service.MatCodeService;
+import com.zy.asrs.service.WorkService;
+import com.zy.common.model.LocDetlDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -31,6 +36,10 @@
     private LocDetlService locDetlService;
     @Autowired
     private MatCodeService matCodeService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private BasDevpService basDevpService;
 
     @PostMapping("/stockOut/prew")
     @Transactional
@@ -84,6 +93,7 @@
     @PostMapping("/stockOut")
     @Transactional
     public R stockOut(@RequestBody List<OpenApiStockOutParam> params){
+        List<PakoutVo> result = new ArrayList<>();
         if (!Cools.isEmpty(params)) {
             for (OpenApiStockOutParam param : params) {
                 Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
@@ -91,13 +101,49 @@
                     throw new CoolException(param.getMatnr() + "鐗╂枡鏁伴噺涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
                 }
 
+                List<LocDetl> locDetls = locDetlService.selectPakoutByRule(param.getMatnr());
+                double issued = Optional.ofNullable(param.getAnfme()).orElse(0.0D) ;
+                double anfme = issued;
+                for (LocDetl locDetl : locDetls) {
+                    if (issued > 0) {
+                        // 鐢熸垚鍑哄簱宸ヤ綔妗�
 
+                        // 鍏ㄦ澘
+                        if (issued>=locDetl.getAnfme()) {
+                            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);
+                        // 鎷f枡
+                        } else {
+                            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);
+                        }
+
+                        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();
+        return R.ok().add(result);
     }
 
 

--
Gitblit v1.9.1