From 4998a40482838c8e6f43db8473e79fccbcc639f2 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 15 十月 2024 08:28:43 +0800
Subject: [PATCH] 三方接口整理

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  273 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 219 insertions(+), 54 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 2de975b..11dc289 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
@@ -26,6 +27,8 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.NodeUtils;
+import com.zy.system.entity.Config;
+import com.zy.system.mapper.ConfigMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -100,6 +103,9 @@
 
     @Resource
     private LocDetlMapper locDetlMapper;
+
+    @Resource
+    private ConfigMapper configMapper;
 
     @Override
     @Transactional
@@ -1232,10 +1238,6 @@
 //        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto);
         StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0);
 
-        // 杩斿洖GWCS鐩爣淇℃伅
-        pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode(),"gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs");
-
-
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -1323,6 +1325,10 @@
         } else {
             throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
         }
+
+        // 杩斿洖GWCS鐩爣淇℃伅
+        pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode(),"gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs");
+
         return null;
     }
 
@@ -1340,6 +1346,10 @@
 
         wrkMast.setWrkSts(2L);
         if(wrkMast.getIoType() == 10){
+            wrkMast.setBarcode(param.getBarcode());
+        } else if(wrkMast.getIoType() == 12) { // 璺ㄥ贩閬撹浆绉诲叆搴�
+
+        } else if(wrkMast.getSourceStaNo() == 3046 || wrkMast.getSourceStaNo() == 3042) {
             wrkMast.setBarcode(param.getBarcode());
         }
         wrkMastService.updateById(wrkMast);
@@ -1564,7 +1574,7 @@
         if (wrkMast == null) {
             throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
         }
-        if (wrkMast.getWrkSts() != 2 || wrkMast.getIoType() != 103) {
+        if (wrkMast.getWrkSts() != 2 || wrkMast.getIoType() != 103 && wrkMast.getIoType() != 109) {
             throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�2/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
         }
         // 鏇存柊宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋->42.绛夊緟鐮佸灈
@@ -1580,6 +1590,7 @@
         zphjcdgzVo.setWorkNo(wrkDetl.getWrkNo());
         zphjcdgzVo.setBoxType(wrkDetl.getColor());
         zphjcdgzVo.setPosition(wrkDetl.getOrigin());
+        zphjcdgzVo.setCdType(wrkMast.getIoType() == 103 ? 1 : 2);
 
         return R.ok(zphjcdgzVo);
     }
@@ -1588,7 +1599,7 @@
     @Transactional
     public R zphjCdwc(ZphjcdwcParam param) {
 
-        if (Cools.isEmpty(param.getWorkNo(),param.getBarcode(),param.getSourceStaNo(),param.getSite())) {
+        if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite())) {
             return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�");
         }
         WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
@@ -1602,74 +1613,228 @@
         // 鑾峰彇鍑哄簱鐗╂枡
         List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
 
+        // 婧愬簱浣�
+        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+
         // 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。
-        int work = create111Work(wrkMast, wrkDetls, param.getSite(), wrkMast.getStaNo(), param.getBarcode());
+        int work = create111Work(wrkMast, wrkDetls, param.getSite(), wrkMast.getStaNo(), "1001");
 
         int descFlag = getType(wrkDetls);
-
-        // get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
-        List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
-        ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
-        zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
-        zphjcdwcVo1.setStaNo(wrkMast.getSourceStaNo());
-        zphjcdwcVo1.setSourceStaNo(param.getSourceStaNo());
-        zphjcdwcVo1.setBarcode(wrkMast.getBarcode());
-        zphjcdwcVos.add(zphjcdwcVo1);
-
-        ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
-        zphjcdwcVo2.setWorkNo(work);
-        zphjcdwcVo2.setSourceStaNo(param.getSite());
-        zphjcdwcVo2.setStaNo(wrkMast.getStaNo());
-        zphjcdwcVo2.setBarcode(param.getBarcode());
-        zphjcdwcVo2.setDescFlag(descFlag);
-        zphjcdwcVos.add(zphjcdwcVo2);
-
 
         // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
         if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
             throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
         }
-        // 鑾峰彇鐩爣绔�
-//        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-//                .eq("type_no", wrkMast.getIoType() - 50)
-//                .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-//                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-//        StaDesc staDesc = staDescService.selectOne(wrapper);
-//        if (Cools.isEmpty(staDesc)) {
-//            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
-//        }
-        // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-//        Integer staNo = staDesc.getCrnStn();
-        // 鏇存柊宸ヤ綔绫诲瀷103->53
-        wrkMast.setIoType(53);
-        wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
-        // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
-        wrkMast.setStaNo(oneFloorIn[wrkMast.getCrnNo()]);
-        wrkMast.setSourceStaNo(param.getSourceStaNo());
 
-        // 鐩爣搴撲綅=婧愬簱浣�
-        wrkMast.setLocNo(wrkMast.getSourceLocNo());
-        // 婧愬簱浣嶆竻闄�
-        wrkMast.setSourceLocNo("");
-        wrkMast.setModiTime(new Date());
+        // 鑾峰彇澶囪揣鍖洪厤缃�
+        Config config = configMapper.selectConfigByCode("auto_stock_up");
+        if (config == null) {
+            throw new CoolException("鐞嗚揣鑾峰彇澶囪揣鍖洪厤缃敊璇紒锛侊紒");
+        }
+        // 鍓嶅嚑鍒楁槸澶囪揣鍖�
+        int columnNum = Integer.parseInt(config.getValue());
+
+        // get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
+        List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
+
+        ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
+        zphjcdwcVo2.setWorkNo(work);
+        zphjcdwcVo2.setSourceStaNo(param.getSite());
+        zphjcdwcVo2.setStaNo(wrkMast.getStaNo());
+        zphjcdwcVo2.setBarcode(param.getSite() == 3046 ? "T1146" : "T1142");
+        zphjcdwcVo2.setDescFlag(descFlag);
+        zphjcdwcVos.add(zphjcdwcVo2);
+
+        // 濡傛灉浠庡璐у尯鏉ョ殑锛屽垯涓嶈兘鍥炲師搴撲綅
+        if (locMast.getBay1() <= columnNum) {
+
+            // 瀵绘壘涓�涓柊搴撲綅
+            LocTypeDto locTypeDto = new LocTypeDto();
+            locTypeDto.setLocType1((short) 1);
+            StartupDto dto = commonService.getLocNo(53, param.getSourceStaNo(), locTypeDto, 0);
+            // 鏂板簱浣�
+            LocMast staLocMast = locMastService.selectById(dto.getLocNo());
+
+            // 鏇存柊鏃у簱浣嶇姸鎬� O
+            locMast.setLocSts("O");
+            locMast.setBarcode("");
+            locMast.setModiTime(new Date());
+            locMastService.updateById(locMast);
+
+            // 鎶婃棫搴撲綅鏄庣粏杞埌鏂板簱浣�
+            locDetlService.updateLocNo(staLocMast.getLocNo(), wrkMast.getSourceLocNo());
+
+            // 鏇存柊鏂板簱浣嶇姸鎬� Q
+            staLocMast.setLocSts("Q");
+            staLocMast.setBarcode(wrkMast.getBarcode());
+            staLocMast.setModiTime(new Date());
+            locMastService.updateById(staLocMast);
+
+            // 鏇存柊宸ヤ綔宸ヤ綔涓绘。
+            wrkMast.setIoType(53);
+            wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
+            // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
+            wrkMast.setStaNo(dto.getStaNo());
+            wrkMast.setSourceStaNo(dto.getSourceStaNo());
+            wrkMast.setCrnNo(dto.getCrnNo());
+            // 鐩爣搴撲綅=婧愬簱浣�
+            wrkMast.setLocNo(dto.getLocNo());
+            // 婧愬簱浣嶆竻闄�
+            wrkMast.setSourceLocNo("");
+            wrkMast.setModiTime(new Date());
+
+        } else {
+            // 鏇存柊宸ヤ綔宸ヤ綔涓绘。
+            wrkMast.setIoType(53);
+            wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
+            wrkMast.setSourceStaNo(param.getSourceStaNo());
+            wrkMast.setStaNo(oneFloorIn[wrkMast.getCrnNo()]);
+            // 鐩爣搴撲綅=婧愬簱浣�
+            wrkMast.setLocNo(wrkMast.getSourceLocNo());
+            // 婧愬簱浣嶆竻闄�
+            wrkMast.setSourceLocNo("");
+            wrkMast.setModiTime(new Date());
+        }
 
         // 鏇存柊宸ヤ綔涓绘。
         wrkMastService.updateById(wrkMast);
-        // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
-        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-        locMast.setLocSts("Q");
-        locMast.setModiTime(new Date());
-        if (!locMastService.updateById(locMast)) {
-            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
-        }
+
+        // 鍥炲簱
+        ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
+        zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
+        zphjcdwcVo1.setStaNo(wrkMast.getStaNo());
+        zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo());
+        zphjcdwcVo1.setBarcode(wrkMast.getBarcode());
+        zphjcdwcVos.add(0,zphjcdwcVo1);
 
         // 涓嬪彂鍥炲簱鐨勭洰鏍囩珯鐐瑰拰鎷嗗灈鐨勫嚭搴撶洰鏍囩珯鐐圭粰gwcs
         return R.ok(zphjcdwcVos);
     }
 
     @Override
+    public R kxlhCdwc(KxlhcdwcParam param) {
+
+        if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite())) {
+            return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�");
+        }
+        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+        if (wrkMast == null) {
+            throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+        }
+        if (wrkMast.getWrkSts() != 42 || wrkMast.getIoType() != 109) {
+            throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�42/鍑哄簱绫诲瀷涓嶄负绌洪棽鐞嗚揣锛�");
+        }
+
+        Date now = new Date();
+
+        // 鑾峰彇鍑哄簱鐗╂枡
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+
+        // 鑾峰彇搴撳瓨鐗╂枡
+        List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+
+        // 婧愬簱浣�
+        LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+
+        List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
+
+        if (wrkDetls.size() == locDetls.size()) { // 涓嶉渶瑕佸洖搴擄紝鎷嗗畬鍚庡墿绌烘墭鐩樺幓鍙犵洏鏈�
+
+            // 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
+            locDetlMapper.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+
+            // 淇敼婧愬簱浣嶇姸鎬�
+            if (locMast.getLocSts().equals("R")) {
+                locMast.setLocSts("O");
+                locMast.setBarcode("");
+                locMast.setSheetNo("0");
+                locMast.setModiTime(now);
+                locMast.setIoTime(now);
+                locMastService.updateById(locMast);
+            }
+
+            // 淇敼宸ヤ綔涓绘。鐘舵��
+            wrkMast.setWrkSts(15L);
+            wrkMast.setModiTime(now);
+            wrkMastService.updateById(wrkMast);
+
+            // 涓嬪彂鍘诲彔鐩樹綅缃�
+            ZphjcdwcVo zphjcdwcVo = new ZphjcdwcVo();
+            zphjcdwcVo.setWorkNo(wrkMast.getWrkNo());
+            zphjcdwcVo.setStaNo(3013);
+            zphjcdwcVo.setSourceStaNo(param.getSourceStaNo());
+            zphjcdwcVo.setBarcode(wrkMast.getBarcode());
+            zphjcdwcVos.add(zphjcdwcVo);
+
+        } else { // 鎷嗗畬鍚庤繕鏈夌墿鏂欙紝闇�瑕佸洖搴�
+
+            // 鍏堝垹闄ゅ簱瀛樻槑缁嗭紝閬垮厤杩樻湭鍥炲簱浣嗙粍鐩樼殑鍏堝叆搴撲簡
+            for (WrkDetl wrkDetl : wrkDetls) {
+                locDetlMapper.delete(new EntityWrapper<LocDetl>().eq("brand",wrkDetl.getBrand()));
+            }
+
+            // 淇敼宸ヤ綔涓绘。
+            wrkMast.setWrkSts(52L);
+            wrkMast.setIoType(59);
+            wrkMast.setSourceStaNo(wrkMast.getStaNo());
+            wrkMast.setStaNo(oneFloorIn[wrkMast.getCrnNo()]);
+            wrkMast.setLocNo(wrkMast.getSourceLocNo());
+            wrkMast.setSourceLocNo("");
+            wrkMast.setModiTime(now);
+            wrkMastService.updateById(wrkMast);
+
+            // 淇敼婧愬簱浣嶇姸鎬�
+            if (locMast.getLocSts().equals("R")) {
+                locMast.setLocSts("S");
+                locMast.setModiTime(now);
+                locMastService.updateById(locMast);
+            }
+
+            // 涓嬪彂鍥炲簱鍛戒护
+            ZphjcdwcVo zphjcdwcVo = new ZphjcdwcVo();
+            zphjcdwcVo.setWorkNo(wrkMast.getWrkNo());
+            zphjcdwcVo.setStaNo(oneFloorIn[wrkMast.getCrnNo()]);
+            zphjcdwcVo.setSourceStaNo(param.getSourceStaNo());
+            zphjcdwcVo.setBarcode(wrkMast.getBarcode());
+            zphjcdwcVos.add(zphjcdwcVo);
+        }
+
+        // 缁勭洏鐐�
+        Integer site = param.getSite();
+
+        // 鍒ゆ柇缁勭洏鏄惁瀹屾垚锛氫袱涓埌鎹㈢洏绔欑偣鐨勪换鍔℃槸鍚﹀畬鎴�
+        Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().eq("io_type", 109).ne("wrk_sts",15);
+        if (site == 3046) {
+            wrapper.in("sta_no",3045,3044);
+        } else {
+            wrapper.in("sta_no",3041,3040);
+        }
+        int count = wrkMastService.selectCount(wrapper);
+
+        // 宸茬粡瀹屾垚鍒欎笅鍙戠粍鐩樼偣鍏ュ簱鍛戒护
+        if (count == 0) {
+            // 鑾峰彇鍒扮粍鐩樼偣鍏ュ簱浠诲姟
+            WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 1).eq("io_type", 1).eq("source_sta_no", site));
+            ZphjcdwcVo zphjcdwcVo = new ZphjcdwcVo();
+            zphjcdwcVo.setWorkNo(wrkMast1.getWrkNo());
+            zphjcdwcVo.setStaNo(wrkMast1.getStaNo());
+            zphjcdwcVo.setSourceStaNo(site);
+            zphjcdwcVo.setBarcode(site == 3046 ? "T1046" : "T1042");
+            zphjcdwcVos.add(zphjcdwcVo);
+        }
+
+        return R.ok(zphjcdwcVos);
+    }
+
+    @Override
     public R requestXhd(String barcode) {
 
+        // 娌℃湁浠诲姟鎴栬�呬笉鏄洏鐐逛换鍔$殑鎵樼洏缁忚繃鍒欒繑鍥�-1锛屽拷鐣�
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+        if (wrkMast == null || wrkMast.getIoType() != 107) {
+            return R.ok(-1);
+        }
+
         // 搴撳瓨鏄庣粏鏈ㄧ浣嶇疆闆嗗悎
         List<LocDetl> locDetls = locDetlMapper.selectList(new EntityWrapper<LocDetl>().eq("zpallet", barcode));
         List<String> collect1 = locDetls.stream().map(LocDetl::getOrigin).distinct().collect(Collectors.toList());

--
Gitblit v1.9.1