From 5dac37cde0205be965c2b74dd1bddefc7f9cceda Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 26 三月 2025 08:56:57 +0800
Subject: [PATCH] Merge branch 'integrationWms' into mdqzasrs

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  311 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 281 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index e6f38ce..7bbe338 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,7 +12,10 @@
 import com.zy.asrs.entity.param.FullStoreParam;
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.mapper.LocMastMapper;
+import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
 import com.zy.common.model.enums.IoWorkType;
@@ -25,6 +28,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -78,6 +82,18 @@
     @Autowired
     private WaitPakinService waitPakinService;
 
+    @Autowired
+    private LocOwnerService locOwnerService;
+
+    @Autowired
+    private ManLocDetlService manLocDetlService;
+
+    @Resource
+    private LocMastMapper locMastMapper;
+
+    @Resource
+    private OrderPakoutService orderPakOutService;
+
     @Override
     @Transactional
     public String startupFullPutStore(FullStoreParam param, Long userId) {
@@ -90,9 +106,13 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
-        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), matnrs.get(0), batchs.get(0), null,locTypeDto);
+//        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
+//        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
+        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo,locTypeDto);
+        if (Cools.isEmpty(dto)){
+            throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
+        }
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -123,9 +143,9 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         List<DetlDto> detlDtos = new ArrayList<>();
         param.getList().forEach(elem -> {
-            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(),elem.getBrand(),elem.getStandby1(),elem.getStandby2(),elem.getStandby3(),elem.getBoxType1(),elem.getBoxType2(),elem.getBoxType3(), elem.getAnfme());
             if (DetlDto.has(detlDtos, detlDto)) {
-                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getBrand(),detlDto.getStandby1(),detlDto.getStandby2(),detlDto.getStandby3(),detlDto.getBoxType1(),detlDto.getBoxType2(),detlDto.getBoxType3());
                 assert detlDto1 != null;
                 detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
             } else {
@@ -164,11 +184,18 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getBrand()
+                        ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
         if (!locDetlDtos.isEmpty()) {
+            // 搴撲綅鍙烽泦鍚�
+            List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+            String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+            if (firstFrozenLocNo != null) {
+                throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+            }
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
@@ -178,6 +205,84 @@
             }
         } else {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+        }
+    }
+
+    @Override
+    @Transactional
+    public void turnOverOut(EmptyPlateOutParam param, Long userId) {
+        try {
+            if (Cools.isEmpty(param.getOwnerId())) {
+                throw new CoolException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖");
+            }else if (param.getLocDetls().size()<=0){
+                throw new CoolException("璇锋彁鍙栨槑缁�");
+            }
+            ArrayList<String> locNos = new ArrayList<>();
+            String[][] locNos2 =new String[param.getLocDetls().size()][4];
+            int i=0;
+            for (EmptyPlateOutParam.LocDetl locDetl : param.getLocDetls()){
+                if (!locNos.contains(locDetl.getLoc_no())){
+                    locNos.add(locDetl.getLoc_no());
+                    locNos2[i][0]=locDetl.getLoc_no();
+                    locNos2[i][1]=locDetl.getManu();
+                    locNos2[i][2] = locDetl.getMatnr();
+                    locNos2[i][3] = locDetl.getBatch();
+                    i++;
+                }
+            }
+            LocOwner locOwner = locOwnerService.selectById(param.getOwnerId());
+            param.setOwner(locOwner.getOwner());
+            String lgort = "";
+            String owner="";
+            List<DetlDto> detlDtos = new ArrayList<>();
+            for (String[] locNo1 : locNos2) {
+                String locNo = locNo1[0];
+                if (locNo1[1].equals("骞冲簱")){
+                    List<ManLocDetl> manLocDetls = new ArrayList<>();
+                    if (locNo1[3] == null){
+                        manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",locNo1[2]));
+                    }else {
+                        manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",locNo1[2]).eq("batch",locNo1[3]));
+                    }
+                    for (ManLocDetl manLocDetl:manLocDetls){
+                        if (Cools.isEmpty(owner)) {
+                            owner = manLocDetl.getOwner$();
+                        }
+//                        detlDtos.add(new DetlDto(manLocDetl.getMatnr(), manLocDetl.getBatch(),manLocDetl.getBrand(),
+//                                manLocDetl.getStandby1(),manLocDetl.getStandby2(),manLocDetl.getStandby3(),
+//                                manLocDetl.getBoxType1(),manLocDetl.getBoxType2(),manLocDetl.getBoxType3(), manLocDetl.getAnfme()));
+                        manLocDetl.setOwner(param.getOwnerId());
+                        try{
+                            manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr()));
+                        }catch (Exception e){
+                            throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+                        }
+                    }
+                }else if (locNo1[1].equals("绔嬪簱")){
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locNo1[2]).eq("batch",locNo1[3]));
+                    for (LocDetl locDetl:locDetls){
+                        if (Cools.isEmpty(lgort)) {
+                            lgort = locDetl.getOrigin();
+                        }
+                        if (Cools.isEmpty(owner)) {
+                            owner = locDetl.getOwner$();
+                        }
+                        detlDtos.add(new DetlDto(locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(),
+                                locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),
+                                locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3(), locDetl.getAnfme()));
+                        locDetl.setOwner(param.getOwnerId());
+                        try{
+                            locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()));
+                        }catch (Exception e){
+                            throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+                        }
+                    }
+                }else {
+                    throw new Exception("鏇存柊搴撲綅鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+                }
+            }
+        }catch (Exception e){
+            throw new CoolException("绉讳氦浣滀笟鍑洪敊浜嗭細"+e);
         }
     }
 
@@ -294,8 +399,10 @@
         }
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
-        // 鑾峰彇璺緞
-        int ioType = taskDto.isAll() ? 101 : 103;
+        // 鍒ゆ柇鏄惁鏄洏鐐瑰崟
+        String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
+        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
+        int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
@@ -326,10 +433,14 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         for (LocDto locDto : taskDto.getLocDtos()) {
             if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
-            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
-            if (orderDetl == null) {
-                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
-            }
+//            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+            OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getBrand()
+                    ,locDto.getStandby1(),locDto.getStandby2(),locDto.getStandby3(),locDto.getBoxType1(),locDto.getBoxType2(),locDto.getBoxType3());
+//            if (orderDetl == null) {
+////                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+//                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
+//
+//            }
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(orderDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -345,11 +456,16 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
-            // 淇敼璁㈠崟鏄庣粏
-            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
-                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
-            }
-            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+//            // 淇敼璁㈠崟鏄庣粏
+//            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+//                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+//            }
+//            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+            OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE,orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),
+                    orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),
+                    orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3()
+                    , locDto.getAnfme());
+            OrderInAndOutUtil.updateOrder(Boolean.FALSE,orderDetl.getOrderId(), 2L, userId);
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
@@ -372,7 +488,9 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto);
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+
+        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -429,6 +547,13 @@
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
         }
+
+        // 搴撲綅鍐荤粨涓嶈兘鍑哄簱
+        String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(param.getLocNos());
+        if (firstFrozenLocNo != null) {
+            throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+        }
+
         for (String locNo : param.getLocNos()) {
             // 鑾峰彇宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
@@ -496,7 +621,7 @@
         }
         for (String locNo : param.getLocNos()) {
             // 鑾峰彇宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(0);
+            int workNo = commonService.getWorkNo(2);
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.selectById(locNo);
             if (Cools.isEmpty(locMast)) {
@@ -560,11 +685,18 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getBrand()
+                        ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
         if (!locDetlDtos.isEmpty()) {
+            // 搴撲綅鍙烽泦鍚�
+            List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+            String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+            if (firstFrozenLocNo != null) {
+                throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+            }
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F")){
                 // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
@@ -589,6 +721,19 @@
         if (Cools.isEmpty(loc)){
             throw new CoolException("鏈壘鍒板簱浣�");
         }
+        // 鍒ゆ柇搴撲綅鏄惁鍐荤粨
+        String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(),loc.getLocNo()));
+        if (sourceLocFrozen != null) {
+            throw new CoolException(sourceLocFrozen + "搴撲綅宸茶鍐荤粨!");
+        }
+
+        // 鍒ゆ柇搴撳瓨鏄惁鍐荤粨
+        Optional<LocDetl> first = locDetls.stream().filter(locDetl -> locDetl.getFrozen() == 1).findFirst();
+        if (first.isPresent()) {
+            LocDetl locDetl = first.get();
+            throw new CoolException(locDetl.getLocNo() + "," + locDetl.getMatnr() + "," + locDetl.getBatch() + "搴撳瓨鏄庣粏宸茶鍐荤粨!");
+        }
+
         if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
             throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
         }
@@ -707,6 +852,31 @@
 
         List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
 
+        // 娣诲姞鍘嗗彶宸ヤ綔涓绘。
+        WrkMastLog wrkMast = new WrkMastLog();
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(5);
+        wrkMast.setIoPri(13D); // 浼樺厛绾�
+        wrkMast.setCrnNo(locMast.getCrnNo());
+        wrkMast.setSourceLocNo(locMast.getLocNo());
+        wrkMast.setLocNo(locMast.getLocNo());
+        wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        wrkMast.setAppeUser(userId);
+        wrkMast.setModiUser(userId);
+
+        // 澧炲垹鏀瑰彧鍒涘缓涓�娆″伐浣滀富妗�
+        boolean updateFlag = true;
+        boolean deleteFlag = true;
+        boolean addFlag = true;
+
         // 淇敼鏁伴噺
         Iterator<LocDetl> iterator = locDetls.iterator();
         while (iterator.hasNext()) {
@@ -720,7 +890,8 @@
                     if (!locDetl.getAnfme().equals(adjust.getCount())) {
                         // todo 鐩樼偣璁板綍
                         // 淇敼搴撳瓨
-                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(),
+                                locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) {
                             throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
                         }
                         // 淇濆瓨璋冩暣璁板綍
@@ -735,6 +906,30 @@
                         adjDetl.setAppeTime(now);
                         adjDetl.setAppeUser(userId);
                         adjDetlService.save(adjDetl, userId);
+
+                        if (updateFlag) {
+                            wrkMast.setWrkNo(commonService.getWorkNo(3));
+                            wrkMast.setIoType(23);
+                            boolean res = wrkMastLogService.insert(wrkMast);
+                            if (!res) {
+                                throw new CoolException("搴撳瓨璋冩暣-淇敼 淇濆瓨宸ヤ綔妗eけ璐�");
+                            }
+                            updateFlag = false;
+                        }
+
+                        // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+                        WrkDetlLog wrkDetl = new WrkDetlLog();
+                        wrkDetl.sync(locDetl);
+                        wrkDetl.setWrkNo(wrkMast.getWrkNo());
+                        wrkDetl.setIoTime(wrkMast.getIoTime());
+                        wrkDetl.setAnfme(adjust.getCount());
+                        wrkDetl.setAppeTime(now);
+                        wrkDetl.setModiTime(now);
+                        wrkMast.setAppeUser(userId);
+                        wrkMast.setModiUser(userId);
+                        if (!wrkDetlLogService.insert(wrkDetl)) {
+                            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                        }
                     }
                     iterator.remove();
                     iterator1.remove();
@@ -745,7 +940,8 @@
         // 鍒犻櫎搴撳瓨
         for (LocDetl locDetl : locDetls) {
             // todo 鐩樼偣璁板綍
-            if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
+            if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(),
+                    locDetl.getStandby1(),locDetl.getStandby2(),locDetl.getStandby3(),locDetl.getBoxType1(),locDetl.getBoxType2(),locDetl.getBoxType3())) {
                 throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
             }
             // 淇濆瓨璋冩暣璁板綍
@@ -760,6 +956,30 @@
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
             adjDetlService.save(adjDetl, userId);
+
+            if (deleteFlag) {
+                wrkMast.setWrkNo(commonService.getWorkNo(3));
+                wrkMast.setIoType(22);
+                boolean res = wrkMastLogService.insert(wrkMast);
+                if (!res) {
+                    throw new CoolException("搴撳瓨璋冩暣-鍒犻櫎 淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                deleteFlag = false;
+            }
+
+            // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+            WrkDetlLog wrkDetl = new WrkDetlLog();
+            wrkDetl.sync(locDetl);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAnfme(0.0);
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            wrkMast.setAppeUser(userId);
+            wrkMast.setModiUser(userId);
+            if (!wrkDetlLogService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
         }
 
         // 娣诲姞搴撳瓨
@@ -770,6 +990,7 @@
             locDetl.sync(mat);
             locDetl.setBatch(adjust.getBatch());
             locDetl.setLocNo(locMast.getLocNo());
+            locDetl.setZpallet(locMast.getBarcode());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
             locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅
             locDetl.setModiTime(now);
@@ -790,6 +1011,30 @@
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
             adjDetlService.save(adjDetl, userId);
+
+            if (addFlag) {
+                wrkMast.setWrkNo(commonService.getWorkNo(3));
+                wrkMast.setIoType(21);
+                boolean res = wrkMastLogService.insert(wrkMast);
+                if (!res) {
+                    throw new CoolException("搴撳瓨璋冩暣-鏂板 淇濆瓨宸ヤ綔妗eけ璐�");
+                }
+                addFlag = false;
+            }
+
+            // 娣诲姞鍘嗗彶宸ヤ綔鏄庣粏
+            WrkDetlLog wrkDetl = new WrkDetlLog();
+            wrkDetl.sync(locDetl);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAnfme(adjust.getCount());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            wrkMast.setAppeUser(userId);
+            wrkMast.setModiUser(userId);
+            if (!wrkDetlLogService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
         }
         // 淇敼搴撲綅鐘舵��
         int count = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
@@ -885,28 +1130,34 @@
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
             for (WrkDetl wrkDetl : wrkDetls) {
                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-                    }
+//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+//                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+//                    }
+                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
+                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
 
                     //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
                     boolean flag = true;
-                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
+//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
+                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
+                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
                     for(OrderDetl orderDetl : orderDetls){
                         if(orderDetl.getWorkQty() > 0){
                             flag = false;
                         }
                     }
                     if(flag){
-                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
+//                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
                         if(!Cools.isEmpty(order) && order.getSettle()==2){
                             order.setSettle(1L);
                             order.setUpdateBy(userId);
                             order.setUpdateTime(now);
                         }
-                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
-                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
-                        }
+//                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
+//                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+//                        }
+                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
                     }
                 }
             }

--
Gitblit v1.9.1