From 3521070a2fda24b1d534e21018ce8017e01f595a Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期一, 29 七月 2024 10:05:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  231 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 184 insertions(+), 47 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 1a69600..f249d38 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;
@@ -11,6 +12,8 @@
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.OpenOrderCompeteResult;
 import com.zy.asrs.entity.result.StockVo;
+import com.zy.asrs.entity.result.ZphjcdgzVo;
+import com.zy.asrs.entity.result.ZphjcdwcVo;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.MatUtils;
@@ -27,7 +30,9 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.net.CookieStore;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2022/4/9
@@ -69,6 +74,8 @@
     @Autowired
     private WrkDetlSingleService wrkDetlSingleService;
     @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
     private WrkMastStaService wrkMastStaService;
     @Autowired
     private WrkMastStaLogService wrkMastStaLogService;
@@ -76,6 +83,8 @@
     private StaDescService staDescService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private ApiLogService apiLogService;
 
     @Override
     @Transactional
@@ -999,11 +1008,15 @@
 
         // 鏍规嵁婧愮珯鐐瑰鎵惧簱浣�
 //        StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto);
-        StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto);
+        StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto,0);
 
         // 杩斿洖GWCS鐩爣淇℃伅
         pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo());
 
+        int iotype = 1;
+        if (Cools.isEmpty(param.getMatList())) {
+            iotype = 10;
+        }
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -1011,7 +1024,7 @@
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(new Date());
         wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋
-        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         wrkMast.setIoPri(13D); // 浼樺厛绾�
         wrkMast.setCrnNo(dto.getCrnNo());
         wrkMast.setSourceStaNo(param.getPalletizingNo());
@@ -1032,46 +1045,49 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
-        List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
-        for (GwmsGenerateInventoryDto.MatList obj :matList) {
-            WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.setWrkNo(wrkMast.getWrkNo());
-            obj.getRolls().forEach(roll -> {
-                Mat mat = matService.selectByMatnr(roll.getSpecs());
-                if (mat == null) {
-                    mat = new Mat();
-                    mat.setTagId(6L);
-                    mat.setMatnr(roll.getSpecs());
-                    mat.setMaktx(roll.getSpecs());
-                    mat.setSpecs(roll.getSpecs());
-                    mat.setStatus(1);
-                    mat.setCreateTime(now);
-                    mat.setUpdateTime(now);
-                    if (!matService.insert(mat)) {
-                        throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
-                    }
-                }
+        if (!Cools.isEmpty(param.getMatList())) {
+            List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
+            for (GwmsGenerateInventoryDto.MatList obj :matList) {
+                WrkDetl wrkDetl = new WrkDetl();
                 wrkDetl.setWrkNo(wrkMast.getWrkNo());
-                wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
-                wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
-                wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
-                wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
-                wrkDetl.setBrand(""); // 鏈ㄧ绫诲瀷
-                wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
-                wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
-                wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
-                wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
-                wrkDetl.setPrice(roll.getLength());
-                wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
-                wrkDetl.setAnfme(1.0);
-                wrkDetl.setIoTime(now);
-                wrkDetl.setAppeTime(now);
-                wrkDetl.setModiTime(now);
-                if (!wrkDetlService.insert(wrkDetl)) {
-                    throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
-                }
-            });
+                obj.getRolls().forEach(roll -> {
+//                Mat mat = matService.selectByMatnr(roll.getSpecs());
+//                if (mat == null) {
+//                    mat = new Mat();
+//                    mat.setTagId(6L);
+//                    mat.setMatnr(roll.getSpecs());
+//                    mat.setMaktx(roll.getSpecs());
+//                    mat.setSpecs(roll.getSpecs());
+//                    mat.setStatus(1);
+//                    mat.setCreateTime(now);
+//                    mat.setUpdateTime(now);
+//                    if (!matService.insert(mat)) {
+//                        throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
+//                    }
+//                }
+                    wrkDetl.setWrkNo(wrkMast.getWrkNo());
+                    wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
+                    wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
+                    wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
+                    wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
+                    wrkDetl.setBrand(obj.getPackageGroupNo()); // 鍖呰缁勫彿
+                    wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
+                    wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+                    wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
+                    wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
+                    wrkDetl.setPrice(roll.getLength());
+                    wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
+                    wrkDetl.setAnfme(1.0);
+                    wrkDetl.setIoTime(now);
+                    wrkDetl.setAppeTime(now);
+                    wrkDetl.setModiTime(now);
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+                    }
+                });
+            }
         }
+
 
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -1295,10 +1311,131 @@
         return "鍑哄簱鎴愬姛";
     }
 
-    @Autowired
-    private ApiLogService apiLogService;
+    @Override
+    @Transactional
+    public R zphjDw(ZphjckdwParam param) {
+        // 鏍规嵁浠诲姟鍙峰緱鍒板伐浣滀富妗�
+        if (Cools.isEmpty(param.getWorkNo())) {
+            throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+        }
+        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+        if (wrkMast == null) {
+            throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+        }
+        if (wrkMast.getWrkSts() != 2 || wrkMast.getIoType() != 103) {
+            throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�2/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+        }
+        // 鏇存柊宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋->42.绛夊緟鐮佸灈
+        wrkMast.setWrkSts(42L);
+        wrkMastService.updateById(wrkMast);
 
-    private void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
+        // 鏌ヨ瑕佹媶鐨勪綅缃紝鍙湁涓�涓�
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+        String position = collect.get(0);
+
+        // 杩斿洖鎷嗗灈瑙勫垯
+        ZphjcdgzVo zphjcdgzVo = new ZphjcdgzVo();
+        zphjcdgzVo.setWorkNo(wrkMast.getWrkNo());
+        zphjcdgzVo.setPosition(position);
+
+        return R.ok(zphjcdgzVo);
+    }
+
+    @Override
+    @Transactional
+    public R zphjCdwc(ZphjcdwcParam param) {
+
+        if (Cools.isEmpty(param.getWorkNo())) {
+            throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+        }
+        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+        if (wrkMast == null) {
+            throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+        }
+        if (wrkMast.getWrkSts() != 42 || wrkMast.getIoType() != 103) {
+            throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�42/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+        }
+
+        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+        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.getStaNo()) // 浣滀笟绔欑偣 = 鎷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.setSourceStaNo(wrkMast.getStaNo());
+        wrkMast.setStaNo(staNo);
+        // 鐩爣搴撲綅=婧愬簱浣�
+        wrkMast.setLocNo(wrkMast.getSourceLocNo());
+        // 婧愬簱浣嶆竻闄�
+        wrkMast.setSourceLocNo("");
+        wrkMast.setModiTime(new Date());
+
+        int outStaNo = 0; // 鍑哄簱婧愮珯鐐�
+        if (staNo == 3044 || staNo == 3045) {
+             outStaNo = 3046;
+        } else if(staNo == 3040 || staNo == 3041) {
+             outStaNo = 3042;
+        }
+        if (outStaNo == 0) {
+            throw new CoolException("鍑哄簱婧愮珯鐐硅浆鎹㈡湁璇細" + staNo);
+        }
+
+        // 鑾峰彇鍑哄簱鐗╂枡
+        List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+        int descFlag = getType(wrkDetls);
+
+        // get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
+        List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
+        ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
+        zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
+        zphjcdwcVo1.setStaNo(wrkMast.getStaNo());
+        zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo());
+        zphjcdwcVos.add(zphjcdwcVo1);
+
+        ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
+        zphjcdwcVo2.setSourceStaNo(outStaNo);
+        zphjcdwcVo2.setStaNo(3106); // 3106/3077
+        zphjcdwcVo2.setDescFlag(descFlag);
+        zphjcdwcVos.add(zphjcdwcVo2);
+
+        // 鏇存柊宸ヤ綔涓绘。
+        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("淇敼搴撲綅鐘舵�佸け璐�");
+        }
+
+        // 涓嬪彂鍥炲簱鐨勭洰鏍囩珯鐐瑰拰鎷嗗灈鐨勫嚭搴撶洰鏍囩珯鐐圭粰gwcs
+        return R.ok(zphjcdwcVos);
+    }
+
+    /**
+     * 鏍规嵁鍑哄簱鐗╂枡鏄庣粏鍒ゆ柇鏄惁鍘昏创鏍�(鍗曞嵎璐存爣锛屽鍗蜂笉璐存爣)
+     * @param wrkDetls 鐗╂枡鏄庣粏
+     * @return 0.澶氬嵎涓嶈创鏍囪矾寰勶紝1.鍗曞嵎璐存爣璺緞
+     */
+    private int getType(List<WrkDetl> wrkDetls) {
+        return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗�
+    }
+
+    public void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
         boolean success = false;
         // 鑾峰彇璇锋眰澶�
         Map<String, Object> headers = getHeaders();
@@ -1312,8 +1449,8 @@
         String response = "";
         try {
             response = new HttpHandler.Builder()
-                    .setUri(MesConstant.URL)
-                    .setPath(MesConstant.PAKIN_URL)
+                    .setUri(MesConstant.GWCS_IP_PORT)
+                    .setPath(MesConstant.GWCS_FPKW_URL)
                     .setHeaders(headers)
                     .setJson(body)
                     .build()
@@ -1337,10 +1474,10 @@
                 // 淇濆瓨鎺ュ彛鏃ュ織
                 apiLogService.save(
                         "鍏ュ簱",
-                        MesConstant.URL + MesConstant.PAKIN_URL,
+                        MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL,
                         null,
                         "127.0.0.1",
-                        jsonObject.toJSONString(),
+                        body,
                         response,
                         success
                 );

--
Gitblit v1.9.1