From 74fd6eb7fb0322078f7946f51073f20e90231df1 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期二, 01 四月 2025 11:54:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 1021 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,005 insertions(+), 16 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 c55bc31..4205f08 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1,23 +1,38 @@
 package com.zy.asrs.service.impl;
 
 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;
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 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.vo.JarMastTableVo;
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.handler.BareBoardHandler;
+import com.zy.asrs.utils.CodeDetectionUtil;
 import com.zy.asrs.utils.MatUtils;
+import com.zy.asrs.utils.PostMesDataUtils;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.DetlDto;
+import com.zy.common.model.LocTypeDto;
+import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
 import com.zy.common.utils.NodeUtils;
+import com.zy.common.web.WcsController;
+import com.zy.common.web.param.SearchLocParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -54,6 +69,30 @@
     private BasDevpService basDevpService;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private WaitPakinService waitPakinService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private LocDetlRullUpDetailService locDetlRullUpDetailService;
+    @Autowired
+    private WrkDetlSingleService wrkDetlSingleService;
+    @Autowired
+    private WrkMastStaService wrkMastStaService;
+    @Autowired
+    private WrkMastStaLogService wrkMastStaLogService;
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private WorkService workService;
+    @Autowired
+    private BareBoardHandler bareBoardHandler;
+    @Autowired
+    private BasJarMastService basJarMastService;
+    @Autowired
+    private BasCrnpService basCrnpService;
 
     @Override
     @Transactional
@@ -525,7 +564,7 @@
                 } else {
                     tagId = tagService.getTop().getId();
                 }
-                mat.sync(param);
+                mat.sync(matParam);
 //            mat.setMatnr(param.getMatnr());
 //            mat.setMaktx(param.getMaktx());
 //            mat.setSpecs(param.getSpecs());
@@ -541,7 +580,7 @@
                     log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
                 }
             } else {
-                mat.sync(param);
+                mat.sync(matParam);
                 if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
                     throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
                 }
@@ -586,19 +625,28 @@
         LabellerMatParam labellerMatParam = new LabellerMatParam();
         labellerMatParam.setDevNo(param.getDevNo());
         labellerMatParam.setLabNo(param.getLabNo());
-        ArrayList<LabellerMatParam.CombMat> combMats = new ArrayList<>();
-        String orderNo = "";
-        for (WrkDetl wrkDetl:wrkDetls){
-            LabellerMatParam.CombMat combMat = new LabellerMatParam.CombMat(wrkDetl);
-            orderNo=wrkDetl.getOrderNo();
-            combMat.setTemp1("1");
-            combMats.add(combMat);
-        }
-        labellerMatParam.setCombMats(combMats);
-        labellerMatParam.setLabellingTime(DateUtils.convert(new Date()));
         labellerMatParam.setWrkNo(basDevp.getWrkNo().toString());
-        labellerMatParam.setLabTemplate("1");
-        labellerMatParam.setOrderNo(orderNo);
+//        ArrayList<LabellerMatParam.CombMat> combMats = new ArrayList<>();
+        ArrayList<LabellerMatParam.BoxNo> boxNos = new ArrayList<>();
+//        String orderNo = "";
+
+        for (WrkDetl wrkDetl:wrkDetls){
+            LabellerMatParam.BoxNo boxNo = new LabellerMatParam.BoxNo();
+            boxNo.setBoxNo(wrkDetl.getBatch());
+            boxNos.add(boxNo);
+        }
+        labellerMatParam.setBoxNos(boxNos);
+//        for (WrkDetl wrkDetl:wrkDetls){
+//            LabellerMatParam.CombMat combMat = new LabellerMatParam.CombMat(wrkDetl);
+//            orderNo=wrkDetl.getOrderNo();
+//            combMat.setTemp1("1");
+//            combMats.add(combMat);
+//        }
+
+//        labellerMatParam.setCombMats(combMats);
+//        labellerMatParam.setLabellingTime(DateUtils.convert(new Date()));
+//        labellerMatParam.setLabTemplate("1");
+//        labellerMatParam.setOrderNo(orderNo);
         wrkMast.setWrkSts(53L);
         if (!wrkMastService.updateById(wrkMast)){
             throw new CoolException("寮傚父锛岃閲嶆柊鐢宠");
@@ -612,7 +660,46 @@
     @Override
     @Transactional
     public void labellerComplete(LabellerCompleteParam param) {
-        //
+        if (Cools.isEmpty(param.getDevNo())){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getLabNo())){
+            throw new CoolException("鍙傛暟锛氳创鏍囨満鍙� labNo涓虹┖");
+        }else if (Cools.isEmpty(param.getLabResult())){
+            throw new CoolException("鍙傛暟锛氳创鏍囩粨鏋� labResult涓虹┖");
+        }else if (Cools.isEmpty(param.getWrkNo())){
+            throw new CoolException("鍙傛暟锛氳创鏍囦换鍔″彿 wrkNo涓虹┖");
+        }
+        BasDevp basDevp = basDevpService.selectById(param.getDevNo());
+        if (Cools.isEmpty(basDevp)){
+            throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo="+param.getDevNo()+"涓嶅瓨鍦�");
+        }else if (Cools.isEmpty(basDevp.getWrkNo()) || basDevp.getWrkNo()==0 ){
+            throw new CoolException("绔欑偣:"+param.getDevNo()+" 涓嶅瓨鍦ㄥ伐浣滀腑浠诲姟");
+        }else if(!basDevp.getWrkNo().toString().equals(param.getWrkNo())){
+            throw new CoolException("绔欑偣:"+param.getDevNo()+" 杩涜涓换鍔″彿="+basDevp.getWrkNo()+" 涓庤创鏍囩粨鏋滆繑鍥炰换鍔″彿="+param.getWrkNo()+" 涓嶄竴鑷�");
+        }
+
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo()));
+        if (Cools.isEmpty(wrkMast)){
+            throw new CoolException("绔欑偣:"+param.getDevNo()+" 宸ヤ綔涓换鍔′笉瀛樺湪,浠诲姟鍙凤細"+basDevp.getWrkNo());
+        }else if (!wrkMast.getWrkSts().equals(53L)){
+            throw new CoolException("绔欑偣:"+param.getDevNo()+" 宸ヤ綔涓换鍔$姸鎬佸凡鍙樻洿锛岃鍕块噸澶嶇敵璇�,浠诲姟鍙凤細"+basDevp.getWrkNo()+",浠诲姟鐘舵��:"+wrkMast.getWrkSts$());
+        }
+
+        if (param.getLabResult().equals("OK")){
+            wrkMast.setWrkSts(54L);
+            wrkMast.setStaNo(144);
+            if (!wrkMastService.updateById(wrkMast)){
+                throw new CoolException("寮傚父锛岃閲嶆柊鐢宠");
+            }
+        }else if (param.getLabResult().equals("NG")){
+            wrkMast.setWrkSts(52L);//閲嶆柊璐存爣
+            if (!wrkMastService.updateById(wrkMast)){
+                throw new CoolException("寮傚父锛岃閲嶆柊鐢宠");
+            }
+        }else {
+            throw new CoolException("鍙傛暟锛氳创鏍囩粨鏋�:labResult"+param.getLabResult()+";璇锋寜瑙勫垯鍙戦�侊細鎴愬姛锛歄K 銆佸け璐�:NG");
+        }
+
     }
 
     /*
@@ -620,8 +707,172 @@
      * */
     @Override
     @Transactional
-    public void palletizingComplete(PalletizingCompleteParam param) {
+    public void PalletizingCompleteTwoFloorParam(PalletizingCompleteTwoFloorParam param) {
+        Long userId = 7777L;//涓帶
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getBarcode())){
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
+//        }else if (Cools.isEmpty(param.getPalletizingNo())){
+//            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+//        }else if (Cools.isEmpty(param.getBoxType())){
+//            throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matList涓虹┖");
+        }
 
+//        String matnrOne = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙  1銆佸乏
+//        String matnrTwo = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙  2銆佸彸
+//        ArrayList<String> boxNos = new ArrayList<>();   //鏈ㄧ鍞竴缂栫爜鏌ラ噸  锛坆atch锛�
+        //鍒ゆ柇matLists鍙傛暟
+        for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){
+            if (Cools.isEmpty(matList.getMatnr())){
+                throw new CoolException("鍙傛暟锛氳鏍� matnr涓虹┖");
+//            }else if (Cools.isEmpty(matList.getPosition())){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鐮佸灈浣嶇疆 position涓虹┖");
+//            }else if (Cools.isEmpty(matList.getBatch())){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 batch涓虹┖");
+//            }else if (Cools.isEmpty(matList.getModel())){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗峰彿 model涓虹┖");
+//            }else if (Cools.isEmpty(matList.getBatch())){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 boxNo涓虹┖");
+//            }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍑�閲� weight涓虹┖");
+//            }else if (Cools.isEmpty(matList.getRoughWeight()) || matList.getRoughWeight().equals(0D)){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細姣涢噸 roughWeight");
+//            }else if (Cools.isEmpty(matList.getRollExtent()) || matList.getRollExtent().equals(0D)){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗烽暱搴� rollExtent");
+//            }
+//            else if (Cools.isEmpty(matList.getJoint()) || matList.getJoint()==0){
+//                throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鎺ュご鏁� joint");
+            }
+
+//            if (matList.getPosition().equals("1")){//1銆佸乏  2銆佸彸
+//                if (!matnrOne.equals("")){
+//                    if (!matnrOne.equals(matList.getMatnr())){
+//                        throw new CoolException("鏈ㄧ浣嶇疆锛�"+matList.getPosition()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�");
+//                    }
+//                }else {
+//                    matnrOne=matList.getMatnr();
+//                }
+//            }else if (matList.getPosition().equals("2")){
+//                if (!matnrTwo.equals("")){
+//                    if (!matnrTwo.equals(matList.getMatnr())){
+//                        throw new CoolException("鏈ㄧ浣嶇疆锛�"+matList.getPosition()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�");
+//                    }
+//                }else {
+//                    matnrTwo=matList.getMatnr();
+//                }
+//            }else {
+//                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ浣嶇疆閿欒锛�"+matList.getPosition());
+//            }
+//
+//            if (!boxNos.contains(matList.getBatch())){
+//                boxNos.add(matList.getBatch());
+//            }else {
+//                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ缂栫爜瀛樺湪閲嶅");
+//            }
+        }
+
+//        BasDevp basDevp = basDevpService.selectById(Integer.parseInt(param.getDevNo$()));
+//        if (Cools.isEmpty(basDevp)){
+//            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo="+param.getPalletizingNo()+"涓嶅瓨鍦�");
+//        }
+//        if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){
+//            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�");
+//        }
+//        if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){
+//            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�");
+//        }
+//        if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){
+//            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getPalletizingNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�");
+//        }
+
+
+        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0
+            || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0
+            || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()))!=0){
+            throw new CoolException("鎵樼洏鏉$爜锛�"+param.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭");
+        }
+
+
+        Date now = new Date();
+        for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){
+            Mat mat = matService.selectByMatnr(matList.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                mat = new Mat();
+                mat.setMatnr(matList.getMatnr());
+                mat.setMaktx(matList.getMatnr());
+                mat.setTagId(tagService.getTop().getId());
+                mat.setCreateBy(userId);
+                mat.setCreateTime(now);
+                mat.setUpdateBy(userId);
+                mat.setUpdateTime(now);
+                mat.setStatus(1);
+                if (!matService.insert(mat)) {
+                    throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+                }
+            }
+            WaitPakin waitPakin = new WaitPakin();
+            waitPakin.sync(mat);
+            waitPakin.setBatch(matList.getBatch());       //鏈ㄧ缂栫爜  //鎵规  鍞竴鍊�  鎵规
+            waitPakin.setModel(matList.getModel());       //鍗峰彿  鍞竴鍊�
+            waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+            waitPakin.setZpallet(param.getBarcode());   //鎵樼洏鐮�
+            waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+            waitPakin.setWeight(matList.getWeight());  //鍑�閲�
+            waitPakin.setVolume(matList.getRoughWeight());  //姣涢噸
+            waitPakin.setPrice(matList.getRollExtent());   //闀垮害
+            waitPakin.setSpecs(String.valueOf(matList.getJoint()));   //鎺ュご MES璁㈠崟鍙�
+            waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+            waitPakin.setAnfme(matList.getAnfme());  // 鏁伴噺
+            waitPakin.setStatus("Y");    // 鐘舵��
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(now);
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(now);
+            if (!waitPakinService.insert(waitPakin)) {
+                throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+            }
+        }
+
+    }
+
+    /*
+     * 鏉剧洓(1妤�)锛氱爜鍨涘畬鎴愪笅鍙戝叆搴撲俊鎭�
+     * */
+    @Override
+    @Transactional
+    public void palletizingCompleteS(PalletizingCompleteParam param) {
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getBarcode())){
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
+        }
+
+        WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+        if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){
+            log.error("閫�搴撶爜鍨涘畬鎴愶紝杩斿洖鎵樼洏鐮佹湭鏌ヨ鍒板伐浣滄。妗堬紒");
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode鏈煡璇㈠埌宸ヤ綔妗f");
+        }
+        wrkMast.setSheetNo("4");
+        wrkMastService.updateById(wrkMast);
+    }
+
+
+    /*
+     *涓帶锛氬嚭搴撳畬鎴愭湀鍙扮浉鍏�
+     * */
+    @Override
+    @Transactional
+    public void balconyComplete(LabellerMatParam param) {
+        if (Cools.isEmpty(param.getWrkNo())){
+            throw new CoolException("宸ヤ綔鍙蜂负绌猴紒");
+        }
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getWrkNo()));
+        if (Cools.isEmpty(wrkMast)){
+            throw new CoolException("宸ヤ綔鍙蜂负绌猴紒");
+        }
+        wrkMast.setWrkSts(57L);
+        wrkMastService.updateById(wrkMast);
     }
 
     /*
@@ -630,6 +881,78 @@
     @Override
     @Transactional
     public void singleUnstackingComplete(SingleUnstackingCompleteParam param) {
+        Long userId = 8888L;//妗佹灦涓婁綅杞欢
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getPalletizingNo())){
+            throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){
+            throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+        }
+
+        ArrayList<WrkDetl> wrkDetlsNew = new ArrayList<>();
+        ArrayList<WrkDetlSingle> wrkDetlsOld = new ArrayList<>();
+        //鍒ゆ柇matLists鍙傛暟
+        for (SingleUnstackingCompleteParam.MatList matList:param.getMatList()){
+            if (Cools.isEmpty(matList.getPosition())){
+                throw new CoolException("鍙傛暟锛氱爜鍨涗綅缃� position涓虹┖");
+            }else if (Cools.isEmpty(matList.getBoxNo())){
+                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo涓虹┖");
+            }
+            WrkDetlSingle wrkDetlSingleOne = wrkDetlSingleService.selectOne(new EntityWrapper<WrkDetlSingle>().eq("batch", matList.getBoxNo()));
+            List<WrkDetlSingle> wrkDetlSingles = wrkDetlSingleService.selectList(new EntityWrapper<WrkDetlSingle>()
+                    .eq("wrk_no", wrkDetlSingleOne.getWrkNo()).eq("io_time", wrkDetlSingleOne.getIoTime()));
+            boolean sign=true;
+            for (WrkDetlSingle wrkDetlSingle:wrkDetlSingles){
+                WrkDetl wrkDetl = new WrkDetl();
+                wrkDetl.sync(wrkDetlSingle);
+                wrkDetlsNew.add(wrkDetl);
+                wrkDetlsOld.add(wrkDetlSingle);
+                sign=false;
+                break;
+            }
+            if (sign){
+                throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo鏈煡璇㈠埌瀵瑰簲鐨勫伐浣滄槑缁嗭紒");
+            }
+        }
+
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(202));
+        Date now = new Date();
+
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(202); // 鍏ュ嚭搴撶姸鎬侊細202.鎷嗗灈鍚庡嚭搴�
+        wrkMast.setIoPri(99D); // 浼樺厛绾�
+        wrkMast.setSourceStaNo(param.getDevNo$());
+        wrkMast.setStaNo(144); //璐存爣绔欑偣  鐩存帴鍒板熬绔�
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.insert(wrkMast)) {
+            throw new CoolException("鐢熸垚宸ヤ綔妗eけ璐�==銆嬫鏋朵笂浣嶈蒋浠讹細鍗曟鎷嗗灈瀹屾垚閫氱煡");
+        }
+
+        for (WrkDetl wrkDetl : wrkDetlsNew){
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触==銆嬫鏋朵笂浣嶈蒋浠讹細鍗曟鎷嗗灈瀹屾垚閫氱煡");
+            }
+        }
+
+        for (WrkDetlSingle wrkDetlSingle : wrkDetlsOld) {
+            wrkDetlSingleService.delete(new EntityWrapper<WrkDetlSingle>()
+                    .eq("batch",wrkDetlSingle.getBatch())
+                    .eq("wrk_no",wrkDetlSingle.getWrkNo())
+                    .eq("io_time",wrkDetlSingle.getIoTime()));
+        }
 
     }
 
@@ -639,8 +962,674 @@
     @Override
     @Transactional
     public void singleMountUnstackingComplete(SingleMountUnstackingCompleteParam param) {
+//        Long userId = 8888L;//妗佹灦涓婁綅杞欢
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getBarcode())){
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
+        }
+        WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode());
+        if (Cools.isEmpty(wrkMastMatrix)){
+            throw new CoolException("鍙傛暟锛氭墭鐩樼爜鏌ヨ宸ヤ綔妗eけ璐ワ細"+param.getBarcode());
+        }
+
+        wrkMastMatrix.setSheetNo("2");
+        if (!wrkMastService.updateById(wrkMastMatrix)){
+            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�==銆嬫鏋朵笂浣嶈蒋浠讹細鍗曟墭鎷嗗灈瀹屾垚閫氱煡");
+        }
+    }
+
+    /*
+     *
+     * */
+    @Override
+    @Transactional
+    public void cs2() {
+//        int[] staNos =new int[]{122};
+//        for (Integer staNo:staNos){
+//            int[] crnNos =new int[]{6};
+//            for (Integer crnNo:crnNos){
+//                descSta(staNo,crnNo);
+//            }
+//        }
 
     }
 
+    private void descSta(Integer staNo,Integer crnNo){
+//        int[] typeNos =new int[]{1,10,53,101,103,110};
+        int[] typeNos =new int[]{10,110};
+        for (Integer typeNo:typeNos){
+            descSta3(staNo,crnNo,typeNo);
+        }
+    }
+
+    private void descSta3(Integer staNo,Integer crnNo,Integer typeNo){
+        StaDesc staDesc = new StaDesc();
+        staDesc.setTypeNo(typeNo);
+        staDesc.setStnNo(staNo);
+        staDesc.setCrnNo(crnNo);
+        staDesc.setCrnStn(CrnNoRC(crnNo,staDesc.getTypeNo()>100));
+        descSta2(staDesc);
+    }
+
+    private void descSta2(StaDesc staDesc){
+        Date now = new Date();
+        //鍏ュ簱
+        int sameRes = staDescService.selectCount(new EntityWrapper<StaDesc>()
+                .eq("type_no", staDesc.getTypeNo())
+                .eq("stn_no", staDesc.getStnNo())
+                .eq("crn_no", staDesc.getCrnNo())
+                .eq("crn_stn", staDesc.getCrnStn()));
+        if (sameRes == 0) {
+            staDesc.setModiUser(9527L);
+            staDesc.setModiTime(now);
+            staDesc.setAppeUser(9527L);
+            staDesc.setAppeTime(now);
+            staDescService.insert(staDesc);
+        }
+    }
+
+    private Integer CrnNoRC(Integer crnNo,boolean sign){
+        Integer crnStn = 0;
+        switch (crnNo){
+            case 1:
+                crnStn = 102;
+                break;
+            case 2:
+                crnStn = 105;
+                break;
+            case 3:
+                crnStn = 108;
+                break;
+            case 4:
+                crnStn = 111;
+                break;
+            case 5:
+                crnStn = 114;
+                break;
+            case 6:
+                crnStn = 117;
+                break;
+        }
+        if (sign){
+            return crnStn-2;
+        }
+        return crnStn;
+    }
+
     /*...........................涓婇ザ姹熼摐..............浠ヤ笂.............寰愬伐姹変簯...........................*/
+
+
+    /*...........................浜冲窞鐓滄槦..............浠ヤ笅.............浜冲窞鐓滄槦...........................*/
+    /*
+     * 浜冲窞鐓滄槦浠诲姟涓嬪彂  //
+     * */
+    @Override
+    @Transactional
+    public void smallContainers(SmallCompleteParam param) {
+        try{
+            //鍒ゆ柇param鍙傛暟
+            if (Cools.isEmpty(param.getType())){
+                throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+            }
+            if (param.getType()==0){//鐩存帴鍏ュ簱
+                smallContainersSmall(param);
+            } else if (param.getType()==1){//搴撳唴渚涗骇绾�  //鍑哄簱
+                smallContainersBig(param);
+            } else if (param.getType()==2){//鍏ュ簱 閫斿緞 纭寲缃�
+                smallContainersJar(param);
+            } else if (param.getType()==3){//鐩翠緵浜х嚎
+                smallContainersSta(param);
+            }
+//            else if (param.getType()==99){//搴撳唴渚涗骇绾�  //鍑哄簱  娴嬭瘯
+//                smallContainersBig99(param);
+//            }
+        } catch (Exception e){
+            throw new CoolException("澶辫触锛侊紒锛佸師鍥狅細"+e.getMessage());
+        }
+    }
+
+    /*
+    * 灏忔枡绠辨姇鏂欏畬鎴愮粍鎵�
+    * */
+    public void smallContainersSmall(SmallCompleteParam param) {//鐩存帴鍏ュ簱
+        Long userId = 7777L;//mes
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getType())){
+            throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+        }else if (Cools.isEmpty(param.getStaNo())){
+            throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖");
+//        }else if (Cools.isEmpty(param.getDevNo())){
+//            throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatnr())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖");
+        }else if (Cools.isEmpty(param.getWeight())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }
+
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (Cools.isEmpty(mat)) {
+//            mat = new Mat();
+//            mat.setMatnr(param.getMatnr());
+//            mat.setMaktx(param.getMatnr());
+//            mat.setTagId(tagService.getTop().getId());
+//            mat.setCreateBy(userId);
+//            mat.setCreateTime(now);
+//            mat.setUpdateBy(userId);
+//            mat.setUpdateTime(now);
+//            mat.setStatus(1);
+//            if (!matService.insert(mat)) {
+//                throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+//            }
+            throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅");
+        }
+
+
+        BasDevp basDevp = basDevpService.selectById(param.getStaNo());
+        if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getBarcode()) || basDevp.getBarcode().equals("00000000")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode());
+        }
+        if (!basDevp.getInEnable().equals("Y")){
+            try{
+                Thread.sleep(500);
+            } catch (Exception e){
+
+            }
+            BasDevp basDevp1111 = basDevpService.selectById(param.getStaNo());
+            if (!basDevp1111.getInEnable().equals("Y")){
+                throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐癸紝璇风瓑寰呯炕杞畬鎴愶紱鏂欑鐮�==銆�"+basDevp.getBarcode());
+            }
+
+        }
+        if (!CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode());
+        }
+
+
+        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){
+            throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭");
+        }
+
+
+        Date now = new Date();
+
+        WaitPakin waitPakin = new WaitPakin();
+        waitPakin.sync(mat);
+        waitPakin.setBatch(param.getBatch());       //鏈ㄧ缂栫爜  //鎵规  鍞竴鍊�  绠卞彿
+        waitPakin.setModel(param.getTaskNo());       //鍗峰彿  鍞竴鍊�  宸ヤ綔鍙�
+//        waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+        waitPakin.setZpallet(basDevp.getBarcode());   //鎵樼洏鐮�
+//        waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+        waitPakin.setWeight(param.getWeight());  //鍑�閲�
+//        waitPakin.setVolume(matList.getRoughWeight());  //姣涢噸
+//        waitPakin.setPrice(matList.getRollExtent());   //闀垮害
+        waitPakin.setSpecs(param.getOrderNo());   //MES璁㈠崟鍙�  鍊熺敤瑙勬牸
+//        waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+//        waitPakin.setAnfme(matList.getAnfme());  // 鏁伴噺
+        waitPakin.setColor(param.getColor());  // 棰滆壊
+        waitPakin.setStatus("Y");    // 鐘舵��
+        waitPakin.setAppeUser(userId);
+        waitPakin.setAppeTime(now);
+        waitPakin.setModiUser(userId);
+        waitPakin.setModiTime(now);
+        if (!waitPakinService.insert(waitPakin)) {
+            throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+        }
+    }
+    /*
+    * 鍑哄簱
+    * 鐩翠緵浜х嚎
+    * */
+    public void smallContainersBig(SmallCompleteParam param) {//鐩翠緵浜х嚎//鍑哄簱
+        Long userId = 7777L;//mes
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getType())){
+            throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+//        }else if (Cools.isEmpty(param.getStaNo())){
+//            throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖");
+        }else if (Cools.isEmpty(param.getDevNo())){
+            throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatnr())){
+            throw new CoolException("鍙傛暟锛氬搧鍙� matnr涓虹┖");
+        }else if (Cools.isEmpty(param.getWeight())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }else if (Cools.isEmpty(param.getBatchNum())){
+            throw new CoolException("鍙傛暟锛氬嚭搴撴暟閲� batchNum涓虹┖");
+        }
+
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (Cools.isEmpty(mat)){
+            throw new CoolException("鍝佸彿 matnr,璇峰厛涓嬪彂鍩虹妗f锛侊紒锛�");
+        }
+        if (Cools.isEmpty(mat.getUnits())){
+            throw new CoolException("鍝佸彿 matnr,閲嶉噺鑼冨洿鍋忕Щ鍊间负绌猴紒锛侊紒,璇峰厛缁存姢鍩虹妗f锛侊紒锛�");
+        }
+
+        ArrayList<Integer> crns =new ArrayList<>();
+        ArrayList<Integer> crnList =new ArrayList<>();
+
+        crns.add(1);crns.add(2);crns.add(3);crns.add(4);crns.add(5);crns.add(6);crns.add(7);
+
+        for (Integer crnNo : crns){
+            // 妫�娴嬭矾寰�
+            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                    .eq("type_no", 101)
+                    .eq("stn_no", param.getDevNo())
+                    .eq("crn_no", crnNo);
+            StaDesc staDesc = staDescService.selectOne(wrapper);
+            if (Cools.isEmpty(staDesc)){
+                continue;
+            }
+            BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+            if (basCrnp.getCrnSts()!=3 || !basCrnp.getOutEnable().equals("Y")){
+                continue;
+            }
+            if (!basCrnpService.checkSiteError(crnNo, false)){
+                continue;
+            }
+            crnList.add(crnNo);
+        }
+
+        if (crnList.isEmpty()){
+            throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
+        }
+
+        ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
+        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>()
+                .eq("matnr", param.getMatnr())
+                .eq("weight", param.getWeight())
+                .orderBy("batch", true);
+        if (param.getDevNo() == 536) {
+            wrapper.eq("model", param.getModel())
+                    .eq("specs", param.getOrderNo());
+        }
+
+        List<LocDetl> locDetls = locDetlService.selectList(wrapper);
+        if (locDetls.isEmpty()){
+            locDetls = new ArrayList<LocDetl>();
+        }
+        for (LocDetl locDetl:locDetls){
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+            if (locMast.getLocSts().equals("F")){
+                if (crnList.contains(locMast.getCrnNo())){
+                    if (locDetlArrayList.size()<param.getBatchNum()) {//涓�
+                        locDetlArrayList.add(locDetl);
+                    }
+                }
+            }
+        }
+
+        Integer batchNum = param.getBatchNum();
+        if (locDetlArrayList.size()<batchNum){//涓�
+            Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .lt("weight", param.getWeight() + mat.getUnits())
+                    .and()
+                    .gt("weight", param.getWeight())
+                    .orderBy("batch", true)
+                    .orderBy("weight", true);
+            if (param.getDevNo() == 536){
+                locDetlWrapper.eq("model", param.getModel())
+                        .eq("specs", param.getOrderNo());
+            }
+            locDetls = locDetlService.selectList(locDetlWrapper);
+            if (locDetls.isEmpty()){
+                locDetls = new ArrayList<LocDetl>();
+            }
+            for (LocDetl locDetl:locDetls){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    if (crnList.contains(locMast.getCrnNo())){
+                        if (locDetlArrayList.size()<batchNum) {//涓�
+                            locDetlArrayList.add(locDetl);
+                        }
+                    }
+                }
+            }
+        }
+        if (locDetlArrayList.size()<batchNum){//涓�
+            Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .gt("weight", param.getWeight() - mat.getUnits())
+                    .and()
+                    .lt("weight", param.getWeight())
+                    .orderBy("batch", true)
+                    .orderBy("weight", false);
+            if (param.getDevNo() == 536){
+                locDetlWrapper.eq("model", param.getModel())
+                        .eq("specs", param.getOrderNo());
+            }
+            locDetls = locDetlService.selectList(locDetlWrapper);
+
+            if (locDetls.isEmpty()){
+                locDetls = new ArrayList<LocDetl>();
+            }
+            for (LocDetl locDetl:locDetls){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    if (crnList.contains(locMast.getCrnNo())){
+                        if (locDetlArrayList.size()<batchNum) {//涓�
+                            locDetlArrayList.add(locDetl);
+                        }
+                    }
+                }
+            }
+        }
+        if (locDetlArrayList.isEmpty()){
+            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight());
+        }
+        if (locDetlArrayList.size()<batchNum){
+            throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayList.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum());
+        }
+        ArrayList<String> locS = new ArrayList<>();
+
+        ArrayList<LocDetl> locDetlArrayAnd = new ArrayList<>();
+        for (LocDetl locDetl : locDetlArrayList){
+            if (!locS.contains(locDetl.getLocNo())){
+                locDetlArrayAnd.add(locDetl);
+                locS.add(locDetl.getLocNo());
+                if (crnList.contains(1) || crnList.contains(2)){
+                    String singleLoc = Utils.singleLoc(locDetl.getLocNo());
+                    if (Cools.isEmpty(singleLoc)){
+                        log.error("寮傚父搴撲綅鍙凤細"+singleLoc+"锛涜緭鍏ュ簱浣嶅彿锛�"+locDetl.getLocNo());
+                        continue;
+                    }
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", singleLoc));
+                    if (locMast.getLocSts().equals("F")){
+                        LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", singleLoc));
+                        if (Cools.isEmpty(locDetl1)){
+                            throw new CoolException("搴撲綅"+locMast.getLocNo()+"寮傚父锛屽湪搴撲絾鏄棤搴撳瓨锛侊紒锛�");
+                        }
+                        if (!locS.contains(locDetl1.getLocNo())){
+                            if (locDetl1.getMatnr().equals(locDetl.getMatnr())){
+                                locDetlArrayAnd.add(locDetl1);
+                                locS.add(locDetl1.getLocNo());
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (locDetlArrayAnd.isEmpty()){
+            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight());
+        }
+        if (locDetlArrayAnd.size()<batchNum){
+            throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayAnd.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum());
+        }
+
+        ArrayList<LocDetl> locDetlArraySou = new ArrayList<>();
+
+        for (LocDetl locDetl : locDetlArrayAnd){
+            if (batchNum <= 0){
+                break;
+            }
+            locDetlArraySou.add(locDetl);
+            batchNum --;
+        }
+        try{
+            StockOutParam stockOutParam = new StockOutParam(param,locDetlArraySou);
+            workService.startupFullTakeStore(stockOutParam, userId);
+        } catch (Exception e){
+//            throw new CoolException("鐢熸垚鍑哄簱浠诲姟澶辫触:鍑哄簱鏁伴噺锛�"+locDetlArraySou.size());
+            throw new CoolException("鐢熸垚鍑哄簱浠诲姟澶辫触:"+e.getMessage());
+        }
+
+    }
+
+    public void smallContainersJar(SmallCompleteParam param) {
+        Long userId = 7777L;//mes
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getType())){
+            throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+        }else if (Cools.isEmpty(param.getStaNo())){
+            throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖");
+//        }else if (Cools.isEmpty(param.getDevNo())){
+//            throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatnr())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖");
+        }else if (Cools.isEmpty(param.getWeight())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (Cools.isEmpty(mat)) {
+//            mat = new Mat();
+//            mat.setMatnr(param.getMatnr());
+//            mat.setMaktx(param.getMatnr());
+//            mat.setTagId(tagService.getTop().getId());
+//            mat.setCreateBy(userId);
+//            mat.setCreateTime(now);
+//            mat.setUpdateBy(userId);
+//            mat.setUpdateTime(now);
+//            mat.setStatus(1);
+//            if (!matService.insert(mat)) {
+//                throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�");
+//            }
+            throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅");
+        }
+
+
+        BasDevp basDevp = basDevpService.selectById(param.getStaNo());
+        if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getBarcode())){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode());
+        }
+        if (!CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode());
+        }
+
+
+        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){
+            throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭");
+        }
+
+
+        Date now = new Date();
+
+        WaitPakin waitPakin = new WaitPakin();
+        waitPakin.sync(mat);
+        waitPakin.setBatch(param.getBatch());       //鏈ㄧ缂栫爜  //鎵规  鍞竴鍊�  绠卞彿
+        waitPakin.setModel(param.getTaskNo());       //鍗峰彿  鍞竴鍊�
+//        waitPakin.setBrand(param.getBoxType());     //鏈ㄧ绫诲瀷
+        waitPakin.setZpallet(basDevp.getBarcode());   //鎵樼洏鐮�
+//        waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+        waitPakin.setWeight(param.getWeight());  //鍑�閲�
+//        waitPakin.setVolume(matList.getRoughWeight());  //姣涢噸
+//        waitPakin.setPrice(matList.getRollExtent());   //闀垮害
+        waitPakin.setSpecs(param.getOrderNo());   //鍗曞彿  鍊熺敤
+//        waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+//        waitPakin.setAnfme(matList.getAnfme());  // 鏁伴噺
+        waitPakin.setColor(param.getColor());  // 棰滆壊
+        waitPakin.setStatus("Y");    // 鐘舵��
+        waitPakin.setAppeUser(userId);
+        waitPakin.setAppeTime(now);
+        waitPakin.setModiUser(userId);
+        waitPakin.setModiTime(now);
+        if (!waitPakinService.insert(waitPakin)) {
+            throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+        }
+
+
+    }
+
+    public void smallContainersSta(SmallCompleteParam param) {
+        Long userId = 7777L;//mes
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getType())){
+            throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+        }else if (Cools.isEmpty(param.getStaNo())){
+            throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖");
+        }else if (Cools.isEmpty(param.getDevNo())){
+            throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatnr())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖");
+        }else if (Cools.isEmpty(param.getWeight())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }
+
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (Cools.isEmpty(mat)) {
+            throw new CoolException("鐗╂枡锛�"+param.getMatnr()+" 涓嶅瓨鍦紝璇峰厛涓嬪彂鐗╂枡鍩虹淇℃伅");
+        }
+
+        Date now = new Date();
+
+        BasDevp basDevp = basDevpService.selectById(param.getStaNo());
+        if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄嚜鍔ㄧ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄湁鐗╃姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐逛笉鏄兘鍏ョ姸鎬�");
+        }
+        if (Cools.isEmpty(basDevp.getBarcode())){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮�==銆嬩负绌�"+basDevp.getBarcode());
+        }
+        if (!CodeDetectionUtil.barcodeDetection(basDevp.getBarcode(),8)){
+            throw new CoolException("鐮佸灈浣嶇紪鍙� palletizingNo="+param.getStaNo()+" 鎵�澶勭珯鐐规枡绠辩爜寮傚父鐘舵�侊紱鏂欑鐮侊細"+basDevp.getBarcode());
+        }
+
+
+        if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", basDevp.getBarcode()))!=0
+                || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", basDevp.getBarcode()))!=0){
+            throw new CoolException("鎵樼洏鏉$爜锛�"+basDevp.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭");
+        }
+
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(202));
+
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚ID
+        wrkMast.setIoType(202); // 鍏ュ嚭搴撶姸鎬侊細202.鐩翠緵浜х嚎
+        wrkMast.setIoPri(99D); // 浼樺厛绾�
+        wrkMast.setSourceStaNo(param.getStaNo());
+        wrkMast.setStaNo(param.getDevNo());
+        wrkMast.setBarcode(basDevp.getBarcode());
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.insert(wrkMast)) {
+            throw new CoolException("鐢熸垚宸ヤ綔妗eけ璐�==銆嬪皬鏂欑鐩翠緵浜х嚎浠诲姟鐢熸垚");
+        }
+        WrkDetl wrkDetl = new WrkDetl();
+        wrkDetl.setWrkNo(wrkMast.getWrkNo());
+        wrkDetl.setIoTime(wrkMast.getIoTime());
+        wrkDetl.setMatnr(param.getMatnr());
+        wrkDetl.setModel(param.getTaskNo());
+        wrkDetl.setBatch(param.getBatch());
+        wrkDetl.setSpecs(param.getOrderNo());
+        wrkDetl.setAnfme(1D);
+        wrkDetl.setWeight(param.getWeight());
+        wrkDetl.setBarcode(basDevp.getBarcode());
+        wrkDetl.setZpallet(basDevp.getBarcode());
+        wrkDetl.setAppeTime(now);
+        wrkDetl.setModiTime(now);
+        if (!wrkDetlService.insert(wrkDetl)) {
+            throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触==銆嬪皬鏂欑鐩翠緵浜х嚎浠诲姟鏄庣粏鐢熸垚");
+        }
+    }
+
+    public Integer getStaEnd(Integer staNo){
+        switch (staNo){
+            case 118:
+            case 119:
+                return 131;
+            case 120:
+            case 121:
+                return 135;
+            default:
+                return staNo;
+        }
+    }
+
+    /*
+     * 鍑哄簱
+     * 鐩翠緵浜х嚎
+     * */
+    public void smallContainersBig99(SmallCompleteParam param) {//鐩翠緵浜х嚎//鍑哄簱
+        Long userId = 7777L;//mes
+        //鍒ゆ柇param鍙傛暟
+        if (Cools.isEmpty(param.getType())){
+            throw new CoolException("鍙傛暟锛氱被鍨� type涓虹┖");
+//        }else if (Cools.isEmpty(param.getStaNo())){
+//            throw new CoolException("鍙傛暟锛氭姇鏂欑偣浣� staNo涓虹┖");
+        }else if (Cools.isEmpty(param.getDevNo())){
+            throw new CoolException("鍙傛暟锛氫骇绾跨偣浣� devNo涓虹┖");
+        }else if (Cools.isEmpty(param.getMatnr())){
+            throw new CoolException("鍙傛暟锛氬搧鍙� matnr涓虹┖");
+        }else if (Cools.isEmpty(param.getWeight())){
+            throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }else if (Cools.isEmpty(param.getBatchNum())){
+            throw new CoolException("鍙傛暟锛氬嚭搴撴暟閲� batchNum涓虹┖");
+        }
+        Integer devNo = param.getDevNo();
+        Integer batchNum = param.getBatchNum();
+
+
+        for (int i =0;i<batchNum;i++){
+            bareBoardHandler.startYx(devNo,99);
+        }
+    }
+
+    /*
+     * 鑾峰彇纭寲缃愪换鍔′俊鎭�  //
+     * */
+    @Override
+    @Transactional
+    public List<JarMastTableVo> getJatIdList(Integer id) {
+        List<BasJarMast> jarMasts = basJarMastService.selectList(new EntityWrapper<BasJarMast>().eq("jar_id", id));
+        if (Cools.isEmpty(jarMasts)){
+            return new ArrayList<JarMastTableVo>();
+        }
+        ArrayList<JarMastTableVo> jarMastTableVos = new ArrayList<>();
+        for (BasJarMast jarMast : jarMasts) {
+            JarMastTableVo jarMastTableVo = new JarMastTableVo();
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", jarMast.getWrkNo()));
+            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", jarMast.getWrkNo()));
+            if (wrkDetls.isEmpty()){
+                WrkDetl wrkDetl = new WrkDetl();
+                wrkDetls.add(wrkDetl);
+            }
+            if (Cools.isEmpty(wrkMast) || Cools.isEmpty(wrkDetls)){
+                continue;
+            }
+            jarMastTableVo.setJarId(jarMast.getJarId());
+            jarMastTableVo.setJarWrkNo(jarMast.getWrkNo().toString());
+            jarMastTableVo.setStatus(jarMast.getStatus());
+            jarMastTableVo.setStatus$(jarMast.getStatus$());
+            jarMastTableVo.setMatnr(wrkDetls.get(0).getMatnr());
+            jarMastTableVo.setMaktx(wrkDetls.get(0).getMaktx());
+            jarMastTableVo.setWeight(wrkDetls.get(0).getWeight());
+            jarMastTableVos.add(jarMastTableVo);
+        }
+        return jarMastTableVos;
+    }
+
+    /*...........................浜冲窞鐓滄槦..............浠ヤ笂.............浜冲窞鐓滄槦...........................*/
 }

--
Gitblit v1.9.1