From 63060fe958253e788c7d7ded2122c9a08f0e2b2c Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 26 三月 2026 10:32:59 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  856 +++++++++-----------------------------------------------
 1 files changed, 143 insertions(+), 713 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 d86dbf5..20450b9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,12 +12,7 @@
 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.task.core.ReturnT;
-import com.zy.asrs.task.handler.WorkMastHandler;
-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,14 +20,11 @@
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.common.web.WcsController;
-import com.zy.system.entity.Config;
-import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 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,8 +70,6 @@
     @Autowired
     private OrderDetlService orderDetlService;
     @Autowired
-    private ConfigService configService;
-    @Autowired
     private WcsController wcsController;
     @Autowired
     private RowLastnoService rowLastnoService;
@@ -87,27 +77,6 @@
     private SlaveProperties slaveProperties;
     @Autowired
     private WaitPakinService waitPakinService;
-
-    @Autowired
-    private WorkMastHandler workMastHandler;
-
-    @Autowired
-    private LocOwnerService locOwnerService;
-
-    @Autowired
-    private ManLocDetlService manLocDetlService;
-
-    @Resource
-    private LocMastMapper locMastMapper;
-
-    @Resource
-    private OrderPakoutService orderPakOutService;
-
-    @Resource
-    private BasAgvLocDetlService basAgvLocDetlService;
-
-    @Resource
-    private BasAgvWrkDetlService basAgvWrkDetlService;
 
     @Override
     @Transactional
@@ -121,13 +90,8 @@
         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());
-        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");
-        }
+        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -158,9 +122,9 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         List<DetlDto> detlDtos = new ArrayList<>();
         param.getList().forEach(elem -> {
-            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(),elem.getBrand(),elem.getStandby1(),elem.getStandby2(),elem.getStandby3(),elem.getBoxType1(),elem.getBoxType2(),elem.getBoxType3(), elem.getAnfme());
+            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
             if (DetlDto.has(detlDtos, detlDto)) {
-                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getBrand(),detlDto.getStandby1(),detlDto.getStandby2(),detlDto.getStandby3(),detlDto.getBoxType1(),detlDto.getBoxType2(),detlDto.getBoxType3());
+                DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                 assert detlDto1 != null;
                 detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme());
             } else {
@@ -193,117 +157,26 @@
     @Override
     @Transactional
     public void startupFullTakeStore(StockOutParam param, Long userId) {
-        try{
-            // 鐩爣绔欑偣鐘舵�佹娴�
-            BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
-            // 鑾峰彇搴撲綅鏄庣粏
-            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(),paramLocDetl.getBrand()
-                            ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
-                    if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
-                }
+        // 鐩爣绔欑偣鐘舵�佹娴�
+        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        // 鑾峰彇搴撲綅鏄庣粏
+        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());
+                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.鍑哄簱
-                    stockOut(staNo,param.getOutStaArea(), locDetlDtos, null, userId);
-
-//                    stockOut(staNo, locDetlDtos, null, userId);
-                }else {
-                    throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
-                }
-            } else {
-                throw new CoolException("搴撳瓨涓嶅瓨鍦�");
-            }
-        } catch (Exception e){
-            throw new CoolException(e.getMessage());
         }
-    }
-
-    @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("璇锋彁鍙栨槑缁�");
+        if (!locDetlDtos.isEmpty()) {
+            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.鍑哄簱
+                stockOut(staNo, locDetlDtos, null, userId);
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
             }
-            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);
+        } else {
+            throw new CoolException("搴撳瓨涓嶅瓨鍦�");
         }
     }
 
@@ -328,8 +201,6 @@
                 dtos.add(new OutLocDto(locNo, locDetlDto));
             }
         }
-        Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
-
         Integer ioType = null;
         // 鐢熸垚宸ヤ綔妗�
         for (OutLocDto dto : dtos) {
@@ -351,10 +222,6 @@
 
             // 鑾峰彇璺緞
             StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
-//            if(ioType.equals(107)){
-//                staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta);
-//            }
-
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
             // 鐢熸垚宸ヤ綔妗�
@@ -368,33 +235,12 @@
             wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
             wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
-            wrkMast.setBarcode(locMast.getBarcode());
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("N"); // 绌烘澘
             wrkMast.setLinkMis("N");
             wrkMast.setBarcode(locMast.getBarcode());
-            wrkMast.setTakeNone("0");  //0闈炶嚜鍔�
-
-            List<BasAgvWrkDetl> basAgvWrkDetls = null;
-            List<BasAgvLocDetl> basAgvLocDetls = null;
-            try{
-                if (Boolean.parseBoolean(configAutoMPArea.getValue())){
-                    if (wrkMast.getStaNoAgvSign()){
-                        if (ioType==101){
-                            // 鍏ㄦ澘鍑哄簱
-                            basAgvLocDetls = new ArrayList<>();
-                        } else {
-                            // 鎷f枡鍑哄簱
-                            basAgvWrkDetls = new ArrayList<>();
-                        }
-                        wrkMast.setTakeNone("1"); //绛夊緟涓嬪彂
-                    } else {
-                        wrkMast.setTakeNone("3");  //鏃犻渶AGV鎼繍
-                    }
-                }
-            } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
             wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
@@ -402,7 +248,6 @@
             if (!wrkMastService.insert(wrkMast)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
             }
-
             // 鐢熸垚宸ヤ綔妗f槑缁�
             for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
                 if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
@@ -417,48 +262,13 @@
                 wrkDetl.setAppeUser(userId);
                 wrkDetl.setModiTime(now);
                 wrkDetl.setModiUser(userId);
-
-                try{
-                    if (basAgvWrkDetls != null){
-                        BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
-                        basAgvWrkDetl.sync(wrkDetl);
-                        basAgvWrkDetls.add(basAgvWrkDetl);
-                    }
-                } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
                 if (!wrkDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
             }
-//            if(locMastRgv !=null){
-//                if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) {  //鑻ユ湁绌哄簱浣嶄笖閰嶇疆鍏佽鍒欑粦瀹氬叾澶囨枡搴撲綅鍙�
-//                    //淇敼agv澶囨枡鍖虹姸鎬�
-//                    if(locMastRgv.getLocSts().equals("O") && ioType != 107){
-//                        locMastRgv.setLocSts("S");
-//                        locMastRgv.setModiUser(userId);
-//                        locMastRgv.setModiTime(now);
-//                        if (!locMastService.updateById(locMastRgv)) {
-//                            throw new CoolException("棰勭害agv澶囨枡鍖哄簱浣嶇姸鎬佸け璐ワ紝搴撲綅鍙凤細"+locMastRgv.getLocNo());
-//                        }
-//                    }
-//                }
-//            }
-
             // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
             locMast = locMastService.selectById(dto.getLocNo());
             if (locMast.getLocSts().equals("F")) {
-
-                try{
-                    if (basAgvLocDetls != null){
-                        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-                        for (LocDetl locDetl : locDetlList) {
-                            BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
-                            basAgvLocDetl.sync(locDetl);
-                            basAgvLocDetls.add(basAgvLocDetl);
-                        }
-                    }
-                } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
                 locMast.setLocSts(ioType==101?"R":"P");
                 locMast.setModiUser(userId);
                 locMast.setModiTime(now);
@@ -466,222 +276,11 @@
                     throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
                 }
             } else {
-                log.error(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
                 throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
             }
-
-            try{
-                // 澧炲姞AGV搴撳瓨涓浆鏁伴噺
-                if (basAgvLocDetls != null){
-                    for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
-                        try{
-                            basAgvLocDetlService.insert(basAgvLocDetl);
-                        } catch (Exception e){
-                            log.error("澧炲姞AGV搴撳瓨涓浆鏁伴噺澶辫触");
-                        }
-                    }
-                }
-                if (basAgvWrkDetls != null){
-                    for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
-                        try{
-                            basAgvWrkDetlService.insert(basAgvWrkDetl);
-                        } catch (Exception e){
-                            log.error("澧炲姞AGV搴撳瓨涓浆鏁伴噺澶辫触");
-                        }
-                    }
-                }
-
-            }catch (Exception e){}
         }
     }
-    @Override
-    @Transactional
-    public void stockOut(BasDevp staNo,Integer outStaArea, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
-        Date now = new Date();
-        // 鍚堝苟鍚岀被椤�
-        Set<String> locNos = new HashSet<>();
-        List<OutLocDto> dtos = new ArrayList<>();
-        for (LocDetlDto locDetlDto : locDetlDtos) {
-            String locNo = locDetlDto.getLocDetl().getLocNo();
-            if (locNos.contains(locNo)) {
-                for (OutLocDto dto : dtos) {
-                    if (dto.getLocNo().equals(locNo)) {
-                        dto.getLocDetlDtos().add(locDetlDto);
-                        break;
-                    }
-                }
-            } else {
-                locNos.add(locNo);
-                dtos.add(new OutLocDto(locNo, locDetlDto));
-            }
-        }
-        Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
 
-        Integer ioType = null;
-        // 鐢熸垚宸ヤ綔妗�
-        for (OutLocDto dto : dtos) {
-            // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
-            if (ioWorkType == null) {
-                ioType = dto.isAll() ? 101 : 103;
-            } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
-                ioType = 107;
-            }
-            assert ioType != null;
-            // 鑾峰彇搴撲綅
-            LocMast locMast = locMastService.selectById(dto.getLocNo());
-
-            Integer outSta = staNo.getDevNo();
-//            //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
-//            if(locMast.getCrnNo()==2){
-//                outSta = ioType == 101 ? 204 : 202;
-//            }
-
-            // 鑾峰彇璺緞
-            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
-//            if(ioType.equals(107)){
-//                staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta);
-//            }
-
-            // 鐢熸垚宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
-            // 鐢熸垚宸ヤ綔妗�
-            WrkMast wrkMast = new WrkMast();
-            wrkMast.setWrkNo(workNo);
-            wrkMast.setIoTime(now);
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-            wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
-            wrkMast.setIoPri(13D); // 浼樺厛绾э細13
-            wrkMast.setCrnNo(locMast.getCrnNo());
-            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
-            wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
-            wrkMast.setBarcode(locMast.getBarcode());
-            wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
-            wrkMast.setPicking("N"); // 鎷f枡
-            wrkMast.setExitMk("N"); // 閫�鍑�
-            wrkMast.setEmptyMk("N"); // 绌烘澘
-            wrkMast.setCtnKind(outStaArea);//
-            wrkMast.setLinkMis("N");
-            wrkMast.setBarcode(locMast.getBarcode());
-            wrkMast.setTakeNone("0");  //0闈炶嚜鍔�
-
-            List<BasAgvWrkDetl> basAgvWrkDetls = null;
-            List<BasAgvLocDetl> basAgvLocDetls = null;
-            try{
-                if (Boolean.parseBoolean(configAutoMPArea.getValue())){
-                    if (wrkMast.getStaNoAgvSign()){
-                        if (ioType==101){
-                            // 鍏ㄦ澘鍑哄簱
-                            basAgvLocDetls = new ArrayList<>();
-                        } else {
-                            // 鎷f枡鍑哄簱
-                            basAgvWrkDetls = new ArrayList<>();
-                        }
-                        wrkMast.setTakeNone("1"); //绛夊緟涓嬪彂
-                    } else {
-                        wrkMast.setTakeNone("3");  //鏃犻渶AGV鎼繍
-                    }
-                }
-            } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-            wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
-            wrkMast.setAppeTime(now);
-            wrkMast.setModiUser(userId);
-            wrkMast.setModiTime(now);
-            if (!wrkMastService.insert(wrkMast)) {
-                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
-            }
-
-            // 鐢熸垚宸ヤ綔妗f槑缁�
-            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
-                if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
-                WrkDetl wrkDetl = new WrkDetl();
-                wrkDetl.sync(detlDto.getLocDetl());
-                wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
-                wrkDetl.setWrkNo(workNo);
-                wrkDetl.setIoTime(now);
-                Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
-                wrkDetl.setAnfme(anfme); // 鏁伴噺
-                wrkDetl.setAppeTime(now);
-                wrkDetl.setAppeUser(userId);
-                wrkDetl.setModiTime(now);
-                wrkDetl.setModiUser(userId);
-
-                try{
-                    if (basAgvWrkDetls != null){
-                        BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
-                        basAgvWrkDetl.sync(wrkDetl);
-                        basAgvWrkDetls.add(basAgvWrkDetl);
-                    }
-                } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
-                if (!wrkDetlService.insert(wrkDetl)) {
-                    throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-                }
-            }
-//            if(locMastRgv !=null){
-//                if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) {  //鑻ユ湁绌哄簱浣嶄笖閰嶇疆鍏佽鍒欑粦瀹氬叾澶囨枡搴撲綅鍙�
-//                    //淇敼agv澶囨枡鍖虹姸鎬�
-//                    if(locMastRgv.getLocSts().equals("O") && ioType != 107){
-//                        locMastRgv.setLocSts("S");
-//                        locMastRgv.setModiUser(userId);
-//                        locMastRgv.setModiTime(now);
-//                        if (!locMastService.updateById(locMastRgv)) {
-//                            throw new CoolException("棰勭害agv澶囨枡鍖哄簱浣嶇姸鎬佸け璐ワ紝搴撲綅鍙凤細"+locMastRgv.getLocNo());
-//                        }
-//                    }
-//                }
-//            }
-
-            // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
-            locMast = locMastService.selectById(dto.getLocNo());
-            if (locMast.getLocSts().equals("F")) {
-
-                try{
-                    if (basAgvLocDetls != null){
-                        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-                        for (LocDetl locDetl : locDetlList) {
-                            BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
-                            basAgvLocDetl.sync(locDetl);
-                            basAgvLocDetls.add(basAgvLocDetl);
-                        }
-                    }
-                } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
-                locMast.setLocSts(ioType==101?"R":"P");
-                locMast.setModiUser(userId);
-                locMast.setModiTime(now);
-                if (!locMastService.updateById(locMast)) {
-                    throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
-                }
-            } else {
-                log.error(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
-                throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
-            }
-
-            try{
-                // 澧炲姞AGV搴撳瓨涓浆鏁伴噺
-                if (basAgvLocDetls != null){
-                    for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
-                        try{
-                            basAgvLocDetlService.insert(basAgvLocDetl);
-                        } catch (Exception e){
-                            log.error("澧炲姞AGV搴撳瓨涓浆鏁伴噺澶辫触");
-                        }
-                    }
-                }
-                if (basAgvWrkDetls != null){
-                    for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
-                        try{
-                            basAgvWrkDetlService.insert(basAgvWrkDetl);
-                        } catch (Exception e){
-                            log.error("澧炲姞AGV搴撳瓨涓浆鏁伴噺澶辫触");
-                        }
-                    }
-                }
-
-            }catch (Exception e){}
-        }
-    }
     @Override
     @Transactional
     public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
@@ -692,25 +291,11 @@
                 throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
             }
         }
-        Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
-
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
-        // 鍒ゆ柇鏄惁鏄洏鐐瑰崟
-        String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
-        OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
-        int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
+        // 鑾峰彇璺緞
+        int ioType = taskDto.isAll() ? 101 : 103;
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
-        List<LocMast> list = locMastMapper.selectList(
-                new EntityWrapper<LocMast>()
-                        .eq("whs_type", 5)
-                        .eq("loc_sts", "O")
-        );
-        LocMast locMastRgv = list.isEmpty() ? null : list.get(0);
-
-
-
-
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         // 鐢熸垚宸ヤ綔妗�
@@ -721,31 +306,9 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
         wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
-        wrkMast.setTakeNone("0");  //0闈炶嚜鍔�
-
-        List<BasAgvWrkDetl> basAgvWrkDetls = null;
-        List<BasAgvLocDetl> basAgvLocDetls = null;
-        try{
-            if (Boolean.parseBoolean(configAutoMPArea.getValue())){
-                if (wrkMast.getStaNoAgvSign()){
-                    if (ioType==101){
-                        // 鍏ㄦ澘鍑哄簱
-                        basAgvLocDetls = new ArrayList<>();
-                    } else {
-                        // 鎷f枡鍑哄簱
-                        basAgvWrkDetls = new ArrayList<>();
-                    }
-                    wrkMast.setTakeNone("1"); //绛夊緟涓嬪彂
-                } else {
-                    wrkMast.setTakeNone("3");  //鏃犻渶AGV鎼繍
-                }
-            }
-        } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
@@ -762,14 +325,10 @@
         // 鐢熸垚宸ヤ綔妗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());
-            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);
-//
-//            }
+            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+            if (orderDetl == null) {
+                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+            }
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(orderDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -782,55 +341,18 @@
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
             wrkDetl.setModiUser(userId);
-
-            try{
-                if (basAgvWrkDetls != null){
-                    BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
-                    basAgvWrkDetl.sync(wrkDetl);
-                    basAgvWrkDetls.add(basAgvWrkDetl);
-                }
-            } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
             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);
-            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);
-        }
-        //淇敼agv澶囨枡鍖虹姸鎬�
-        if(locMastRgv.getLocSts().equals("O")){
-            locMastRgv.setLocSts("S");
-            locMastRgv.setModiUser(userId);
-            locMastRgv.setModiTime(now);
-            if (!locMastService.updateById(locMastRgv)) {
-                throw new CoolException("棰勭害agv澶囨枡鍖哄簱浣嶇姸鎬佸け璐ワ紝搴撲綅鍙凤細"+locMastRgv.getLocNo());
+            // 淇敼璁㈠崟鏄庣粏
+            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
             }
-        }else{
-            throw new CoolException(locMastRgv.getLocNo() + "澶囨枡鍖轰笉鏄┖搴撲綅鐘舵��");
-
+            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
         }
         // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
         locMast = locMastService.selectById(taskDto.getLocNo());
         if (locMast.getLocSts().equals("F")) {
-            try{
-                if (basAgvLocDetls != null){
-                    List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-                    for (LocDetl locDetl : locDetlList) {
-                        BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
-                        basAgvLocDetl.sync(locDetl);
-                        basAgvLocDetls.add(basAgvLocDetl);
-                    }
-                }
-            } catch (Exception e) {}  //閰嶇疆椤逛笉瀛樺湪锛屼笉鍋氬鐞�
-
             locMast.setLocSts(ioType==101?"R":"P");
             locMast.setModiUser(userId);
             locMast.setModiTime(now);
@@ -840,23 +362,6 @@
         } else {
             throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
         }
-
-
-
-        try{
-            // 澧炲姞AGV搴撳瓨涓浆鏁伴噺
-            if (basAgvLocDetls != null){
-                for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
-                    basAgvLocDetlService.insert(basAgvLocDetl);
-                }
-            }
-            if (basAgvWrkDetls != null){
-                for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
-                    basAgvWrkDetlService.insert(basAgvWrkDetl);
-                }
-            }
-
-        }catch (Exception e){}
     }
 
     @Override
@@ -866,9 +371,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
-
-        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -925,13 +428,6 @@
         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);
@@ -1063,22 +559,15 @@
         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(),paramLocDetl.getBrand()
-                        ,paramLocDetl.getStandby1(),paramLocDetl.getStandby2(),paramLocDetl.getStandby3(),paramLocDetl.getBoxType1(),paramLocDetl.getBoxType2(),paramLocDetl.getBoxType3());
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
                 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.鐩樼偣鍑哄簱
-                stockOut(staNo,param.getOutStaArea(), locDetlDtos, IoWorkType.CHECK_OUT, userId);
+                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
             }else {
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
             }
@@ -1099,19 +588,6 @@
         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("搴撲綅鐘舵�佸凡鏀瑰彉");
         }
@@ -1186,6 +662,90 @@
 
     @Override
     @Transactional
+    public void locMove(String sourceLocNo, Long userId) {
+        LocMast sourceLoc = locMastService.selectById(sourceLocNo);
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo));
+        if (Cools.isEmpty(sourceLoc)){
+            throw new CoolException("鏈壘鍒板簱浣�");
+        }
+//        LocMast loc = locMastService.selectById(locNo);
+//        if (Cools.isEmpty(loc)){
+//            throw new CoolException("鏈壘鍒板簱浣�");
+//        }
+//        if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
+//            throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
+//        }
+//        if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
+//            throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�");
+//        }
+        Date now = new Date();
+        // 鑾峰彇宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
+        // 淇濆瓨宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setIoType(111); // 鍏ュ嚭搴撶姸鎬侊細 111.搴撴牸绉昏浇(鍘�)
+        wrkMast.setIoPri(10D);
+        wrkMast.setCrnNo(sourceLoc.getCrnNo());
+        wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
+        wrkMast.setLocNo(sourceLocNo); // 鐩爣搴撲綅
+        wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
+        wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setLinkMis("N");
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 宸ヤ綔妗f槑缁嗕繚瀛�
+        for (LocDetl locDetl : locDetls) {
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(locDetl);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAnfme(locDetl.getAnfme());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(userId);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+        }
+        // 淇敼婧愬簱浣嶇姸鎬�
+        if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) {
+            sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+            sourceLoc.setModiUser(userId);
+            sourceLoc.setModiTime(now);
+            if (!locMastService.updateById(sourceLoc)){
+                throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+            }
+        } else {
+            throw new CoolException("婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$());
+        }
+//        // 淇敼鐩爣搴撲綅鐘舵��
+//        if (loc.getLocSts().equals("O")) {
+//            loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+//            loc.setModiTime(now);
+//            loc.setModiUser(userId);
+//            if (!locMastService.updateById(loc)) {
+//                throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+//            }
+//        } else {
+//            throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$());
+//        }
+    }
+
+    @Override
+    @Transactional
     public void completeWrkMast(String workNo, Long userId) {
         WrkMast wrkMast = wrkMastService.selectById(workNo);
         if (Cools.isEmpty(wrkMast)){
@@ -1194,16 +754,10 @@
         if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
-
-        ReturnT<String> returnT = workMastHandler.completeTask(wrkMast);
-        if (!returnT.isSuccess()) {
-            throw new CoolException(returnT.getMsg());
-        }
-
         // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
+        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && (wrkMast.getIoType() == 11) || wrkMast.getIoType() == 111)) {
             wrkMast.setWrkSts(4L);
-        // 鍑哄簱
+            // 鍑哄簱
         } else if (wrkMast.getWrkSts() > 10) {
             wrkMast.setWrkSts(14L);
         }
@@ -1213,7 +767,7 @@
         wrkMast.setModiTime(now);
         wrkMast.setModiUser(userId);
         // 瀹屾垚鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩鐢宠瀹屾垚");
+        wrkMast.setManuType("鎵嬪姩瀹屾垚");
         if (!wrkMastService.updateById(wrkMast)) {
             throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
         }
@@ -1236,31 +790,6 @@
 
         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()) {
@@ -1274,8 +803,7 @@
                     if (!locDetl.getAnfme().equals(adjust.getCount())) {
                         // todo 鐩樼偣璁板綍
                         // 淇敼搴撳瓨
-                        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())) {
+                        if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
                             throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
                         }
                         // 淇濆瓨璋冩暣璁板綍
@@ -1290,30 +818,6 @@
                         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();
@@ -1324,8 +828,7 @@
         // 鍒犻櫎搴撳瓨
         for (LocDetl locDetl : locDetls) {
             // todo 鐩樼偣璁板綍
-            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())) {
+            if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) {
                 throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿搴撳瓨鏄庣粏澶辫触");
             }
             // 淇濆瓨璋冩暣璁板綍
@@ -1340,30 +843,6 @@
             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("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
-            }
         }
 
         // 娣诲姞搴撳瓨
@@ -1374,7 +853,6 @@
             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);
@@ -1395,30 +873,6 @@
             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()));
@@ -1467,16 +921,16 @@
                 locMast.setModiUser(userId);
                 locMastService.updateById(locMast);
             }
-        // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
         } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
             locNo = wrkMast.getSourceLocNo();
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
                 locSts = "F";
-            // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
                 locSts = "D";
-            // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 11) {
                 locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
                 // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
@@ -1493,11 +947,6 @@
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
 
-        ReturnT<String> returnT = workMastHandler.cancelTask(wrkMast);
-        if (!returnT.isSuccess()) {
-            throw new CoolException(returnT.getMsg());
-        }
-
         //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
         if(wrkMast.getIoType() == 1) {
             List<WaitPakin> waitPakins=waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
@@ -1506,8 +955,7 @@
                     waitPakin.setIoStatus("N");
                     waitPakin.setLocNo("");
                     waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
-//                            .eq("order_no", waitPakin.getOrderNo())
-                            .eq("zpallet",waitPakin.getZpallet())
+                            .eq("order_no", waitPakin.getOrderNo())
                             .eq("matnr", waitPakin.getMatnr())
                             .eq("batch", waitPakin.getBatch()));
                 }
@@ -1517,46 +965,30 @@
         //鍙栨秷鍑哄簱宸ヤ綔妗f椂锛屾煡璇㈠崟鎹鐞嗚〃锛屽洖婊氫綔涓氫腑鏁伴噺
         if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103) {
             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
-            if(wrkMast.getLocNo() != null){
-                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                locMast.setLocSts("O");
-                locMast.setModiTime(now);
-                locMast.setModiUser(userId);
-                boolean locMastRes = locMastService.updateById(locMast);
-                if (!locMastRes) {
-                    throw new CoolException("淇濆瓨鏁版嵁澶辫触");
-                }
-            }
             for (WrkDetl wrkDetl : wrkDetls) {
                 if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-//                    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());
+                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+                    }
 
                     //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
                     boolean flag = true;
-//                    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());
+                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
                     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("淇敼璁㈠崟鐘舵�佸け璐�");
-//                        }
-                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
+                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
+                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+                        }
                     }
                 }
             }
@@ -1576,7 +1008,7 @@
 //        }
 
         // 鍙栨秷鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩鐢宠鍙栨秷");
+        wrkMast.setManuType("鎵嬪姩鍙栨秷");
         wrkMast.setModiUser(userId);
         wrkMast.setModiTime(now);
         if (!wrkMastService.updateById(wrkMast)) {
@@ -1600,17 +1032,15 @@
 
         // 淇敼搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(locNo);
-        if (Cools.isEmpty(locMast) && wrkMast.getIoType() != 12) {
+        if (Cools.isEmpty(locMast)) {
             throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐ワ紝搴撲綅涓嶅瓨鍦�:"+ locNo);
         }
-        if(wrkMast.getIoType() != 12){
-            locMast.setLocSts(locSts);
-            locMast.setModiTime(now);
-            locMast.setModiUser(userId);
-            boolean locMastRes = locMastService.updateById(locMast);
-            if (!wrkMastRes || !locMastRes) {
-                throw new CoolException("淇濆瓨鏁版嵁澶辫触");
-            }
+        locMast.setLocSts(locSts);
+        locMast.setModiTime(now);
+        locMast.setModiUser(userId);
+        boolean locMastRes = locMastService.updateById(locMast);
+        if (!wrkMastRes || !locMastRes) {
+            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
         }
     }
 

--
Gitblit v1.9.1