From d16d3b70e94f798d7e5abd145f8566d81d0c66c9 Mon Sep 17 00:00:00 2001
From: 18516761980 <4761516tqsxp>
Date: 星期二, 14 六月 2022 18:07:45 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index f158401..f0c1f00 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,18 +1,17 @@
 package com.zy.asrs.controller;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 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.WrkMast;
 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.asrs.service.*;
 import com.zy.common.model.LocDetlDto;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -40,6 +39,8 @@
     private WorkService workService;
     @Autowired
     private BasDevpService basDevpService;
+    @Autowired
+    private WrkMastService wrkMastService;
 
     @PostMapping("/stockOut/prew")
     @Transactional
@@ -49,17 +50,33 @@
         boolean error = false;
         for (OpenApiStockOutParam param : params) {
             Double sumAnfme = Optional.ofNullable(locDetlService.getSumAnfme(param.getMatnr())).orElse(0.0D);
+            double lack = 0.0D;
             if (sumAnfme < param.getAnfme()) {
+                lack = param.getAnfme() - sumAnfme;
                 if (!error) {
                     error = true;
                 }
                 MatCode mat = matCodeService.selectById(param.getMatnr());
+                // 瑙嗗浘瀵硅薄
+                StoPreTab tab = new StoPreTab();
+                tab.setTitle(param.getMatnr() + (mat==null?"": "锛�" + mat.getMatName() + "锛�"));
+                tab.setMatnr(param.getMatnr());
+                tab.setMaktx((mat==null?"": "锛�" + mat.getMatName() + "锛�"));
+                tab.setAnfme(param.getTotal());
+                tab.setLocNo("缂鸿揣");
+                tab.setTotal(lack);
+                tab.setReduce(lack);
+                tab.setRemQty(0.0D);
+                tab.setPrior(false);
+                tab.setPrior$("脳");
+                tab.setType(0);
+                result.add(tab);
+
                 errorMsg.append(mat == null ? param.getMatnr() : mat.getMatName()).append("搴撳瓨涓嶈冻锛岀己璐ф暟閲忥細").append(param.getAnfme() - sumAnfme).append("</br>");
-                continue;
+//                continue;
             }
             List<LocDetl> locDetls = locDetlService.selectPakoutByRule(param.getMatnr());
-            double issued = Optional.ofNullable(param.getAnfme()).orElse(0.0D) ;
-            double anfme = issued;
+            double issued = Optional.of(param.getAnfme() - lack).orElse(0.0D) ;
             for (LocDetl locDetl : locDetls) {
                 if (issued > 0) {
                     // 瑙嗗浘瀵硅薄
@@ -84,10 +101,10 @@
             }
 
         }
-        if (error) {
-            return R.error(errorMsg.toString());
-        }
-        return R.ok().add(result);
+//        if (error) {
+//            return R.error(errorMsg.toString());
+//        }
+        return R.ok(errorMsg).add(result);
     }
 
     @PostMapping("/stockOut")
@@ -96,14 +113,29 @@
         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()) {
-                    throw new CoolException(param.getMatnr() + "鐗╂枡鏁伴噺涓嶈冻锛岀己璐ф暟閲忥細" + (param.getAnfme() - sumAnfme));
+                    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.selectPakoutByRule(param.getMatnr());
-                double issued = Optional.ofNullable(param.getAnfme()).orElse(0.0D) ;
-                double anfme = issued;
+                double issued = Optional.of(param.getAnfme()-lack).orElse(0.0D) ;
                 for (LocDetl locDetl : locDetls) {
                     if (issued > 0) {
                         // 鐢熸垚鍑哄簱宸ヤ綔妗�
@@ -116,7 +148,7 @@
                             dto.setLocDetl(locDetl);
                             dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                             detlDtos.add(dto);
-                            workService.stockOut(staNo, detlDtos, 101, 9527L);
+                            workService.stockOut(staNo, detlDtos, 101, 9527L, param.getAllotNo());
                         // 鎷f枡
                         } else {
                             BasDevp staNo = basDevpService.checkSiteStatus(107);
@@ -125,7 +157,7 @@
                             dto.setLocDetl(locDetl);
                             dto.setCount(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
                             detlDtos.add(dto);
-                            workService.stockOut(staNo, detlDtos, 103, 9527L);
+                            workService.stockOut(staNo, detlDtos, 103, 9527L, param.getAllotNo());
                         }
 
                         PakoutVo pakoutVo = new PakoutVo();

--
Gitblit v1.9.1