From 8e9971722f3f3ed6afd8b17bf73d260a17819914 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期二, 15 七月 2025 17:51:58 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 662 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 445 insertions(+), 217 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 35514a2..f3fe9f4 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -1,5 +1,6 @@ package com.zy.asrs.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -14,9 +15,7 @@ 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.LocDetlMapper; -import com.zy.asrs.mapper.MatMapper; -import com.zy.asrs.mapper.TagMapper; +import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.constant.MesConstant; @@ -36,6 +35,7 @@ import javax.annotation.Resource; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -46,11 +46,11 @@ public class OpenServiceImpl implements OpenService { // 浜屾ゼ鍫嗗灈鏈哄搴斿叆搴撶珯鐐� - private static final int[] secondFloorIn = new int[]{0,2061,2064,2067,2070,2073,2076}; + private static final int[] secondFloorIn = new int[]{0, 2061, 2064, 2067, 2070, 2073, 2076}; // 鍫嗗灈鏈哄搴斾竴妤煎嚭搴撶珯鐐� - private static final int[] secondFloorOut = new int[]{0,3002,3003,3006,3008,3009,3012}; + private static final int[] secondFloorOut = new int[]{0, 3002, 3003, 3006, 3008, 3009, 3012}; // 鍫嗗灈鏈哄搴斾竴妤煎叆搴撶珯鐐� - private static final int[] oneFloorIn = new int[]{0,3001,3004,3005,3007,3010,3011}; + private static final int[] oneFloorIn = new int[]{0, 3001, 3004, 3005, 3007, 3010, 3011}; @Autowired @@ -106,6 +106,12 @@ @Resource private ConfigMapper configMapper; + + @Resource + private OrderMapper orderMapper; + + @Resource + private BasCrnpMapper basCrnpMapper; @Override @Transactional @@ -496,12 +502,12 @@ @Override @Transactional public void syncMat(MatSyncParam param) { - if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) { + if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <= 0) { throw new CoolException("鍟嗗搧鏁版嵁涓虹┖"); } - for(MatSyncParam.MatParam matParam : param.getMatDetails()){ - if(Cools.isEmpty(matParam.getMatnr())){ + for (MatSyncParam.MatParam matParam : param.getMatDetails()) { + if (Cools.isEmpty(matParam.getMatnr())) { throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖"); } @@ -594,7 +600,7 @@ } } else { mat.sync(param); - if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) { + if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) { throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳"); } } @@ -610,29 +616,29 @@ * */ @Override @Transactional - public LabellerMatParam labellerMat(LabellerMatParam param){ - if (Cools.isEmpty(param.getDevNo())){ + public LabellerMatParam labellerMat(LabellerMatParam param) { + if (Cools.isEmpty(param.getDevNo())) { throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓虹┖"); - }else if (Cools.isEmpty(param.getLabNo())){ + } else if (Cools.isEmpty(param.getLabNo())) { throw new CoolException("鍙傛暟锛氳创鏍囨満鍙� labNo涓虹┖"); } BasDevp basDevp = basDevpService.selectById(param.getDevNo()); - if (Cools.isEmpty(basDevp)){ + if (Cools.isEmpty(basDevp)) { throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓嶅瓨鍦�"); - }else if (Cools.isEmpty(basDevp.getWrkNo()) || basDevp.getWrkNo()==0){ - throw new CoolException("绔欑偣:"+param.getDevNo()+" 涓嶅瓨鍦ㄥ伐浣滀腑浠诲姟"); + } else if (Cools.isEmpty(basDevp.getWrkNo()) || basDevp.getWrkNo() == 0) { + throw new CoolException("绔欑偣:" + param.getDevNo() + " 涓嶅瓨鍦ㄥ伐浣滀腑浠诲姟"); } 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(52L)){ - throw new CoolException("绔欑偣:"+param.getDevNo()+" 宸ヤ綔涓换鍔$姸鎬佸凡鍙樻洿锛岃鍕块噸澶嶇敵璇�,浠诲姟鍙凤細"+basDevp.getWrkNo()+",浠诲姟鐘舵��:"+wrkMast.getWrkSts$()); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("绔欑偣:" + param.getDevNo() + " 宸ヤ綔涓换鍔′笉瀛樺湪,浠诲姟鍙凤細" + basDevp.getWrkNo()); + } else if (!wrkMast.getWrkSts().equals(52L)) { + throw new CoolException("绔欑偣:" + param.getDevNo() + " 宸ヤ綔涓换鍔$姸鎬佸凡鍙樻洿锛岃鍕块噸澶嶇敵璇�,浠诲姟鍙凤細" + basDevp.getWrkNo() + ",浠诲姟鐘舵��:" + wrkMast.getWrkSts$()); } List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", basDevp.getWrkNo())); - if (Cools.isEmpty(wrkDetls) || wrkDetls.size()==0){ - throw new CoolException("绔欑偣:"+param.getDevNo()+" 宸ヤ綔涓换鍔′笉瀛樺湪浠诲姟鏄庣粏,浠诲姟鍙凤細"+basDevp.getWrkNo()); + if (Cools.isEmpty(wrkDetls) || wrkDetls.size() == 0) { + throw new CoolException("绔欑偣:" + param.getDevNo() + " 宸ヤ綔涓换鍔′笉瀛樺湪浠诲姟鏄庣粏,浠诲姟鍙凤細" + basDevp.getWrkNo()); } LabellerMatParam labellerMatParam = new LabellerMatParam(); @@ -643,7 +649,7 @@ ArrayList<LabellerMatParam.BoxNo> boxNos = new ArrayList<>(); // String orderNo = ""; - for (WrkDetl wrkDetl:wrkDetls){ + for (WrkDetl wrkDetl : wrkDetls) { LabellerMatParam.BoxNo boxNo = new LabellerMatParam.BoxNo(); boxNo.setBoxNo(wrkDetl.getBatch()); boxNos.add(boxNo); @@ -661,56 +667,56 @@ // labellerMatParam.setLabTemplate("1"); // labellerMatParam.setOrderNo(orderNo); wrkMast.setWrkSts(53L); - if (!wrkMastService.updateById(wrkMast)){ + if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("寮傚父锛岃閲嶆柊鐢宠"); } return labellerMatParam; } /* - * 璐存爣鏈鸿创鏍囧畬鎴� - * */ + * 璐存爣鏈鸿创鏍囧畬鎴� + * */ @Override @Transactional public void labellerComplete(LabellerCompleteParam param) { - if (Cools.isEmpty(param.getDevNo())){ + if (Cools.isEmpty(param.getDevNo())) { throw new CoolException("鍙傛暟锛氱珯鐐瑰彿 devNo涓虹┖"); - }else if (Cools.isEmpty(param.getLabNo())){ + } else if (Cools.isEmpty(param.getLabNo())) { throw new CoolException("鍙傛暟锛氳创鏍囨満鍙� labNo涓虹┖"); - }else if (Cools.isEmpty(param.getLabResult())){ + } else if (Cools.isEmpty(param.getLabResult())) { throw new CoolException("鍙傛暟锛氳创鏍囩粨鏋� labResult涓虹┖"); - }else if (Cools.isEmpty(param.getWrkNo())){ + } 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()+" 涓嶄竴鑷�"); + 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 (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")){ + if (param.getLabResult().equals("OK")) { wrkMast.setWrkSts(54L); wrkMast.setStaNo(144); - if (!wrkMastService.updateById(wrkMast)){ + if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("寮傚父锛岃閲嶆柊鐢宠"); } - }else if (param.getLabResult().equals("NG")){ + } else if (param.getLabResult().equals("NG")) { wrkMast.setWrkSts(52L);//閲嶆柊璐存爣 - if (!wrkMastService.updateById(wrkMast)){ + if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("寮傚父锛岃閲嶆柊鐢宠"); } - }else { - throw new CoolException("鍙傛暟锛氳创鏍囩粨鏋�:labResult"+param.getLabResult()+";璇锋寜瑙勫垯鍙戦�侊細鎴愬姛锛歄K 銆佸け璐�:NG"); + } else { + throw new CoolException("鍙傛暟锛氳创鏍囩粨鏋�:labResult" + param.getLabResult() + ";璇锋寜瑙勫垯鍙戦�侊細鎴愬姛锛歄K 銆佸け璐�:NG"); } } @@ -723,13 +729,13 @@ public void PalletizingCompleteTwoFloorParam(PalletizingCompleteTwoFloorParam param) { Long userId = 7777L;//涓帶 //鍒ゆ柇param鍙傛暟 - if (Cools.isEmpty(param.getBarcode())){ + if (Cools.isEmpty(param.getBarcode())) { throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖"); - }else if (Cools.isEmpty(param.getPalletizingNo())){ + } else if (Cools.isEmpty(param.getPalletizingNo())) { throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); - }else if (Cools.isEmpty(param.getBoxType())){ + } else if (Cools.isEmpty(param.getBoxType())) { throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖"); - }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){ + } else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() == 0) { throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); } @@ -737,52 +743,52 @@ String matnrTwo = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙 2銆佸彸 ArrayList<String> boxNos = new ArrayList<>(); //鏈ㄧ鍞竴缂栫爜鏌ラ噸 锛坆atch锛� //鍒ゆ柇matLists鍙傛暟 - for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){ - if (Cools.isEmpty(matList.getMatnr())){ + 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.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()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�"); + 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 { + matnrOne = matList.getMatnr(); } - }else if (matList.getPosition().equals("2")){ - if (!matnrTwo.equals("")){ - if (!matnrTwo.equals(matList.getMatnr())){ - throw new CoolException("鏈ㄧ浣嶇疆锛�"+matList.getPosition()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�"); + } else if (matList.getPosition().equals("2")) { + if (!matnrTwo.equals("")) { + if (!matnrTwo.equals(matList.getMatnr())) { + throw new CoolException("鏈ㄧ浣嶇疆锛�" + matList.getPosition() + "瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�"); } - }else { - matnrTwo=matList.getMatnr(); + } else { + matnrTwo = matList.getMatnr(); } - }else { - throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ浣嶇疆閿欒锛�"+matList.getPosition()); + } else { + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:" + matList.getBatch() + ",鏈ㄧ浣嶇疆閿欒锛�" + matList.getPosition()); } - if (!boxNos.contains(matList.getBatch())){ + if (!boxNos.contains(matList.getBatch())) { boxNos.add(matList.getBatch()); - }else { - throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ缂栫爜瀛樺湪閲嶅"); + } else { + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:" + matList.getBatch() + ",鏈ㄧ缂栫爜瀛樺湪閲嶅"); } } @@ -801,15 +807,15 @@ // } - 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()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); + 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()){ + for (PalletizingCompleteTwoFloorParam.MatList matList : param.getMatList()) { Mat mat = matService.selectByMatnr(matList.getMatnr()); if (Cools.isEmpty(mat)) { mat = new Mat(); @@ -857,12 +863,12 @@ @Transactional public void palletizingCompleteS(PalletizingCompleteParam param) { //鍒ゆ柇param鍙傛暟 - if (Cools.isEmpty(param.getBarcode())){ + if (Cools.isEmpty(param.getBarcode())) { throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖"); } WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); - if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=2){ + if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts() != 2) { log.error("閫�搴撶爜鍨涘畬鎴愶紝杩斿洖鎵樼洏鐮佹湭鏌ヨ鍒板伐浣滄。妗堬紒"); throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode鏈煡璇㈠埌宸ヤ綔妗f"); } @@ -877,11 +883,11 @@ @Override @Transactional public void balconyComplete(LabellerMatParam param) { - if (Cools.isEmpty(param.getWrkNo())){ + if (Cools.isEmpty(param.getWrkNo())) { throw new CoolException("宸ヤ綔鍙蜂负绌猴紒"); } WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getWrkNo())); - if (Cools.isEmpty(wrkMast)){ + if (Cools.isEmpty(wrkMast)) { throw new CoolException("宸ヤ綔鍙蜂负绌猴紒"); } wrkMast.setWrkSts(57L); @@ -896,34 +902,34 @@ public void singleUnstackingComplete(SingleUnstackingCompleteParam param) { Long userId = 8888L;//妗佹灦涓婁綅杞欢 //鍒ゆ柇param鍙傛暟 - if (Cools.isEmpty(param.getPalletizingNo())){ + if (Cools.isEmpty(param.getPalletizingNo())) { throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); - }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){ + } 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())){ + for (SingleUnstackingCompleteParam.MatList matList : param.getMatList()) { + if (Cools.isEmpty(matList.getPosition())) { throw new CoolException("鍙傛暟锛氱爜鍨涗綅缃� position涓虹┖"); - }else if (Cools.isEmpty(matList.getBoxNo())){ + } 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){ + boolean sign = true; + for (WrkDetlSingle wrkDetlSingle : wrkDetlSingles) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(wrkDetlSingle); wrkDetlsNew.add(wrkDetl); wrkDetlsOld.add(wrkDetlSingle); - sign=false; + sign = false; break; } - if (sign){ + if (sign) { throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo鏈煡璇㈠埌瀵瑰簲鐨勫伐浣滄槑缁嗭紒"); } } @@ -950,7 +956,7 @@ throw new CoolException("鐢熸垚宸ヤ綔妗eけ璐�==銆嬫鏋朵笂浣嶈蒋浠讹細鍗曟鎷嗗灈瀹屾垚閫氱煡"); } - for (WrkDetl wrkDetl : wrkDetlsNew){ + for (WrkDetl wrkDetl : wrkDetlsNew) { wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setIoTime(wrkMast.getIoTime()); wrkDetl.setAppeTime(now); @@ -962,9 +968,9 @@ for (WrkDetlSingle wrkDetlSingle : wrkDetlsOld) { wrkDetlSingleService.delete(new EntityWrapper<WrkDetlSingle>() - .eq("batch",wrkDetlSingle.getBatch()) - .eq("wrk_no",wrkDetlSingle.getWrkNo()) - .eq("io_time",wrkDetlSingle.getIoTime())); + .eq("batch", wrkDetlSingle.getBatch()) + .eq("wrk_no", wrkDetlSingle.getWrkNo()) + .eq("io_time", wrkDetlSingle.getIoTime())); } } @@ -977,16 +983,16 @@ public void singleMountUnstackingComplete(SingleMountUnstackingCompleteParam param) { // Long userId = 8888L;//妗佹灦涓婁綅杞欢 //鍒ゆ柇param鍙傛暟 - if (Cools.isEmpty(param.getBarcode())){ + 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()); + if (Cools.isEmpty(wrkMastMatrix)) { + throw new CoolException("鍙傛暟锛氭墭鐩樼爜鏌ヨ宸ヤ綔妗eけ璐ワ細" + param.getBarcode()); } wrkMastMatrix.setSheetNo("2"); - if (!wrkMastService.updateById(wrkMastMatrix)){ + if (!wrkMastService.updateById(wrkMastMatrix)) { throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�==銆嬫鏋朵笂浣嶈蒋浠讹細鍗曟墭鎷嗗灈瀹屾垚閫氱煡"); } } @@ -1010,9 +1016,9 @@ @Override public void updateBarcode() { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D")); - for (int i = 0; i < locMasts.size(); i ++) { + for (int i = 0; i < locMasts.size(); i++) { LocMast locMast = locMasts.get(i); - locMast.setBarcode("a"+i); + locMast.setBarcode("a" + i); locMastService.updateById(locMast); } System.out.println("鏇存柊瀹屼簡" + locMasts.size()); @@ -1020,29 +1026,27 @@ @Override @Transactional - public void prodCheck(List<ProdCheckParam> param) { + public R prodCheck(List<ProdCheckParam> param) { if (param.isEmpty()) { - throw new CoolException("璇锋眰鍙傛暟涓嶈兘涓虹┖"); + return R.parse("璇锋眰鍙傛暟涓嶈兘涓虹┖"); } for (ProdCheckParam checkParam : param) { // 鏇存柊搴撳瓨鏄庣粏鏄惁鍚堟牸 - LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("model", checkParam.getRollNo())); // 鏇存柊鍟嗗搧琛ㄦ槸鍚﹀悎鏍� - Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); - if (locDetl == null || mat == null) { +// Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("model", checkParam.getRollNo())); + if (locDetl == null) { // || mat == null throw new CoolException("鏇存柊鏄惁鍚堟牸鐗╂枡涓嶅瓨鍦細" + checkParam); } locDetl.setThreeCode(checkParam.getQualified()); - mat.setThreeCode(checkParam.getQualified()); +// mat.setThreeCode(checkParam.getQualified()); - locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); - matService.update(mat,(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) - .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo()))); + locDetlService.update(locDetl, new EntityWrapper<LocDetl>().eq("model", checkParam.getRollNo())); +// matService.update(mat, (new EntityWrapper<Mat>().eq("model", checkParam.getRollNo()))); } + + return R.ok("鏇存柊鎴愬姛"); } @Override @@ -1060,7 +1064,7 @@ StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); // 杩斿洖GWCS鐩爣淇℃伅 - pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(),"涓�妤煎弽淇搧鍏ュ簱鎺ㄩ�乬wcs"); + pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(), "涓�妤煎弽淇搧鍏ュ簱鎺ㄩ�乬wcs"); // if (!result) { // throw new CoolException("鍏ュ簱鍥炴帹鍏ュ簱鐮佸ご缁橤WCS澶辫触"); // } @@ -1099,13 +1103,13 @@ wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setAnfme(1.0); // 閲嶆柊瀹氫綅鏈ㄧ浣嶇疆 - for (FxprkParam.Box box :param.getBoxList()) { + for (FxprkParam.Box box : param.getBoxList()) { if (box.getPackageGroupNo().equals(obj.getBrand())) { if (!box.getBoxPos().equals(obj.getOrigin())) { wrkDetl.setOrigin(box.getBoxPos()); wrkDetl.setZpallet(param.getBarcode()); wrkDetl.setBarcode(param.getBarcode()); - matMapper.updateBoxPos(box.getPackageGroupNo(), box.getBoxPos(),param.getBarcode()); + matMapper.updateBoxPos(box.getPackageGroupNo(), box.getBoxPos(), param.getBarcode()); } break; } @@ -1143,6 +1147,13 @@ // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛� basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y") .eq("out_enable","Y")); + } + WrkMast exist = wrkMastService.selectOne( + new EntityWrapper<WrkMast>() + .eq("barcode", param.getBarcode()) + .eq("io_type", 3)); + if (exist != null) { + return R.error("浠诲姟宸插瓨鍦紝涓嶅彲閲嶅鎻愪氦"); } if (basCrnps.isEmpty()) { throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�"); @@ -1229,20 +1240,21 @@ } } LocTypeDto locTypeDto = new LocTypeDto(); - locTypeDto.setLocType1((short)1); + locTypeDto.setLocType1((short) 1); int iotype = 1; if (Cools.isEmpty(param.getMatList())) { iotype = 10; } // 鏍规嵁婧愮珯鐐瑰鎵惧簱浣� // StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto); - StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0); + StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto, 0); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); + wrkMast.setWhsType(iotype == 1 && param.getPalletizingNo() == 2051 ? 1 : 0); // 杩斾慨鍏ュ簱鏍囪 wrkMast.setIoTime(new Date()); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 @@ -1268,7 +1280,7 @@ if (!Cools.isEmpty(param.getMatList())) { List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList(); - for (GwmsGenerateInventoryDto.MatList obj :matList) { + for (GwmsGenerateInventoryDto.MatList obj : matList) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(wrkMast.getWrkNo()); obj.getRolls().forEach(roll -> { @@ -1305,14 +1317,14 @@ } // 鐗╂枡琛ㄥ浠戒竴浠� - Mat mat = new Mat(); - mat.sync(wrkDetl); - mat.setTagId(6L); - mat.setCreateTime(now); - mat.setUpdateTime(now); - if (!matService.insert(mat)) { - throw new CoolException("澶囦唤鐗╂枡琛ㄥけ璐�"); - } +// Mat mat = new Mat(); +// mat.sync(wrkDetl); +// mat.setTagId(6L); +// mat.setCreateTime(now); +// mat.setUpdateTime(now); +// if (!matService.insert(mat)) { +// throw new CoolException("澶囦唤鐗╂枡琛ㄥけ璐�"); +// } }); } @@ -1321,18 +1333,18 @@ // 鏇存柊鐩爣搴撲綅鐘舵�� LocMast locMast = locMastService.selectById(dto.getLocNo()); - if (locMast.getLocSts().equals("O")){ + if (locMast.getLocSts().equals("O")) { locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 locMast.setModiTime(now); - if (!locMastService.updateById(locMast)){ + if (!locMastService.updateById(locMast)) { throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); } } else { - throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤"); } // 杩斿洖GWCS鐩爣淇℃伅 - pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode(),"gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs"); + pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode(), "gwms鐢宠鍏ュ簱鍚庢帹閫乬wcs"); return null; } @@ -1340,7 +1352,7 @@ @Override @Transactional public String crnExecute(CrnExecuteParam param) { - if (Cools.isEmpty(param.getStaNo(),param.getWorkNo())){ + if (Cools.isEmpty(param.getStaNo(), param.getWorkNo())) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛�" + param); } @@ -1348,13 +1360,15 @@ if (wrkMast == null) { throw new CoolException("涓嶅瓨鍦ㄨ宸ヤ綔鍙凤細" + param.getWorkNo()); } - + if (wrkMast.getWrkSts() == 3||wrkMast.getWrkSts() == 4) { + throw new CoolException("宸ヤ綔妗g姸鎬佷笉瀵癸細" + param.getWorkNo()); + } wrkMast.setWrkSts(2L); - if(wrkMast.getIoType() == 10){ + if (wrkMast.getIoType() == 10) { wrkMast.setBarcode(param.getBarcode()); - } else if(wrkMast.getIoType() == 12) { // 璺ㄥ贩閬撹浆绉诲叆搴� + } else if (wrkMast.getIoType() == 12) { // 璺ㄥ贩閬撹浆绉诲叆搴� - } else if(wrkMast.getSourceStaNo() == 3046 || wrkMast.getSourceStaNo() == 3042) { + } else if (wrkMast.getSourceStaNo() == 3046 || wrkMast.getSourceStaNo() == 3042) { wrkMast.setBarcode(param.getBarcode()); } wrkMastService.updateById(wrkMast); @@ -1372,6 +1386,9 @@ } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); + if (docType == null) { + return R.parse("鍗曟嵁绫诲瀷涓嶅瓨鍦紝璇锋鏌ワ細" + param.getOrderType()); + } Date now = new Date(); // 鍗曟嵁涓绘。 @@ -1386,7 +1403,7 @@ null, // 鍒濆绁ㄦ嵁鍙� null, // 绁ㄦ嵁鍙� null, // 瀹㈡埛缂栧彿 - null, // 瀹㈡埛 + param.getCustomerName(), // 瀹㈡埛 null, // 鑱旂郴鏂瑰紡 null, // 鎿嶄綔浜哄憳 null, // 鍚堣閲戦 @@ -1409,7 +1426,7 @@ now, // 娣诲姞鏃堕棿 9527L, // 淇敼浜哄憳 now, // 淇敼鏃堕棿 - null // 澶囨敞 + param.getMemo() // 澶囨敞 ); if (!orderService.insert(order)) { @@ -1454,14 +1471,14 @@ @Transactional public String outLocResultReport(GhjtApiParam param) { - if (Cools.isEmpty(param.getOutLocResult(),param.getWorkNo())) { + if (Cools.isEmpty(param.getOutLocResult(), param.getWorkNo())) { throw new CoolException("鍏ュ弬涓嶈兘涓虹┖锛�" + param); } WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getWorkNo())); if (wrkMast == null) { throw new CoolException("璇ュ伐浣滄。涓嶅瓨鍦紝浠诲姟鍙凤細" + param.getWorkNo()); - } else if(wrkMast.getWrkSts() != 2) { + } else if (wrkMast.getWrkSts() != 2) { throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉绗﹀悎锛屼换鍔″彿锛�" + param.getWorkNo() + "锛屽伐浣滄。鐘舵�侊細" + wrkMast.getWrkSts()); } @@ -1478,12 +1495,107 @@ // wrkMast.setWrkSts(20L); // // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭 // if (!flag || wrkMast.getIoType() == 110) { - wrkMast.setWrkSts(14L); + wrkMast.setWrkSts(14L); // } wrkMastService.updateById(wrkMast); } + if (!wrkDetls.get(0).getMatnr().equals("绌虹")) { + // 鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍 + ckjgsbPushMes(wrkMast, wrkDetls); + } else { + wrkMast.setWrkSts(14L); + wrkMastService.updateById(wrkMast); + } + + return "鍑哄簱缁撴灉涓婃姤鎴愬姛"; + } + + private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) { + GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto(); + gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode()); + gwmsGenerateInventoryDto.setPalletizingNo(wrkMast.getStaNo()); + List<GwmsGenerateInventoryDto.MatList> matLists = new ArrayList<>(); + for (WrkDetl wrkDetl : wrkDetls) { + boolean flag = true; + for (GwmsGenerateInventoryDto.MatList matList : matLists) { + if (matList.getPackageGroupNo().equals(wrkDetl.getBrand())) { + matList.getRolls().add(new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(), + wrkDetl.getUnit(), wrkDetl.getMaktx(), wrkDetl.getLength(), + Integer.parseInt(wrkDetl.getSpecs()), wrkDetl.getWeight(), wrkDetl.getVolume(), + wrkDetl.getManuDate())); + flag = false; + break; + } + } + if (flag) { + GwmsGenerateInventoryDto.MatList matList = new GwmsGenerateInventoryDto.MatList(); + matList.setBoxPos(wrkDetl.getOrigin()); + matList.setPackageGroupNo(wrkDetl.getBrand()); + matList.setOutOrIn("out"); + matList.setStockType(wrkMast.getStaNo() == 2041 ? "杩斾慨鍑哄簱" : "鎴愬搧鍑哄簱"); + matList.setBoxType(wrkDetl.getColor()); + matList.setRollType(wrkDetl.getManu()); + matList.setWideInWidth(wrkDetl.getSku()); + matList.setThickness(wrkDetl.getItemNum()); + List<GwmsGenerateInventoryDto.Rolls> rollsList = new ArrayList<>(); + GwmsGenerateInventoryDto.Rolls roll = new GwmsGenerateInventoryDto.Rolls(wrkDetl.getModel(), + wrkDetl.getUnit(), wrkDetl.getMaktx(), wrkDetl.getLength(), + Integer.parseInt(wrkDetl.getSpecs()), wrkDetl.getWeight(), wrkDetl.getVolume(), + wrkDetl.getManuDate()); + rollsList.add(roll); + matList.setRolls(rollsList); + matLists.add(matList); + } + } + gwmsGenerateInventoryDto.setMatList(matLists); + + + boolean success = false; + // 鑾峰彇璇锋眰澶� + Map<String, Object> headers = new HashMap<>(); + headers.put("Content-Type", "application/json;charset=UTF-8"); + + // 鏋勯�犺姹備綋 + String body = JSON.toJSONString(gwmsGenerateInventoryDto); + String response = ""; + try { + response = new HttpHandler.Builder() + .setUri(MesConstant.MES_CC_IP_PORT) + .setPath(MesConstant.MES_CC_FXRK_URL) + .setHeaders(headers) + .setJson(body) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject1 = JSONObject.parseObject(response); + int code = (int) jsonObject1.get("code"); + boolean state = jsonObject1.getBoolean("state"); + if (code == 200 && state) { + success = true; + } + } else { + log.error("鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, body, response); + } + } catch (Exception e) { + log.error("鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍寮傚父锛歿}", e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍", + MesConstant.MES_CC_IP_PORT + MesConstant.MES_CC_FXRK_URL, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } } @Autowired @@ -1494,11 +1606,11 @@ public String emptyOutLoc(GhjtApiParam param) { // 3102/3009/3008/3006/3003/3002鈫�3047/3112 // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢� - List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3) - .eq("wrk_no",0)); + List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3) + .eq("wrk_no", 0)); if (basCrnps.isEmpty()) { // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛� - basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3)); + basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3)); } if (basCrnps.isEmpty()) { throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父"); @@ -1507,12 +1619,12 @@ List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); // 瀵绘壘绌烘墭鐩樺簱浣嶏紝鍏堟壘娴呭簱浣� List<LocMast> locMasts; - locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D") - .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",3,4,6,7,10,11,14,15,18,19,22,23)); - if (locMasts.isEmpty()) { - locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D") - .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",1,4,5,8,9,12,13,16,17,20,21,24)); - } + locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D") + .orderAsc(Arrays.asList("row1", "lev1", "bay1")).in("crn_no", crnNoList).in("row1", 3, 4, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23)); + if (locMasts.isEmpty()) { + locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D") + .orderAsc(Arrays.asList("row1", "lev1", "bay1")).in("crn_no", crnNoList).in("row1", 1, 4, 5, 8, 9, 12, 13, 16, 17, 20, 21, 24)); + } if (locMasts.isEmpty()) { throw new CoolException("娌℃湁鎵惧埌绌烘墭鐩橈紝绔欑偣锛�" + param.getStaNo()); @@ -1604,7 +1716,7 @@ @Transactional public R zphjCdwc(ZphjcdwcParam param) { - if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite(),param.getBarcode())) { + if (Cools.isEmpty(param.getWorkNo(), param.getSourceStaNo(), param.getSite(), param.getBarcode())) { return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�"); } WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo()); @@ -1694,14 +1806,14 @@ wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級 wrkMast.setSourceStaNo(param.getSourceStaNo()); wrkMast.setStaNo(oneFloorIn[wrkMast.getCrnNo()]); + // 婧愬簱浣� + LocMast staLocMast = locMastService.selectById(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅=婧愬簱浣� wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣嶆竻闄� wrkMast.setSourceLocNo(""); wrkMast.setModiTime(new Date()); - // 鏇存柊搴撲綅鐘舵�� - LocMast staLocMast = locMastService.selectById(wrkMast.getSourceLocNo()); // 鏇存柊鏂板簱浣嶇姸鎬� Q staLocMast.setLocSts("Q"); staLocMast.setModiTime(new Date()); @@ -1717,7 +1829,7 @@ zphjcdwcVo1.setStaNo(wrkMast.getStaNo()); zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo()); zphjcdwcVo1.setBarcode(wrkMast.getBarcode()); - zphjcdwcVos.add(0,zphjcdwcVo1); + zphjcdwcVos.add(0, zphjcdwcVo1); // 涓嬪彂鍥炲簱鐨勭洰鏍囩珯鐐瑰拰鎷嗗灈鐨勫嚭搴撶洰鏍囩珯鐐圭粰gwcs return R.ok(zphjcdwcVos); @@ -1726,7 +1838,7 @@ @Override public R kxlhCdwc(KxlhcdwcParam param) { - if (Cools.isEmpty(param.getWorkNo(),param.getSourceStaNo(),param.getSite())) { + if (Cools.isEmpty(param.getWorkNo(), param.getSourceStaNo(), param.getSite(), param.getBarcode())) { return R.parse("鍙傛暟涓嶈兘涓虹┖锛岃妫�鏌ュ叆鍙�"); } WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo()); @@ -1782,7 +1894,7 @@ // 鍏堝垹闄ゅ簱瀛樻槑缁嗭紝閬垮厤杩樻湭鍥炲簱浣嗙粍鐩樼殑鍏堝叆搴撲簡 for (WrkDetl wrkDetl : wrkDetls) { - locDetlMapper.delete(new EntityWrapper<LocDetl>().eq("brand",wrkDetl.getBrand())); + locDetlMapper.delete(new EntityWrapper<LocDetl>().eq("brand", wrkDetl.getBrand())); } // 淇敼宸ヤ綔涓绘。 @@ -1815,11 +1927,11 @@ Integer site = param.getSite(); // 鍒ゆ柇缁勭洏鏄惁瀹屾垚锛氫袱涓埌鎹㈢洏绔欑偣鐨勪换鍔℃槸鍚﹀畬鎴� - Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().eq("io_type", 109).ne("wrk_sts",15); + Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().eq("io_type", 109).ne("wrk_sts", 15); if (site == 3046) { - wrapper.in("sta_no",3045,3044); + wrapper.in("sta_no", 3045, 3044); } else { - wrapper.in("sta_no",3041,3040); + wrapper.in("sta_no", 3041, 3040); } int count = wrkMastService.selectCount(wrapper); @@ -1831,7 +1943,7 @@ zphjcdwcVo.setWorkNo(wrkMast1.getWrkNo()); zphjcdwcVo.setStaNo(wrkMast1.getStaNo()); zphjcdwcVo.setSourceStaNo(site); - zphjcdwcVo.setBarcode(site == 3046 ? "T1046" : "T1042"); + zphjcdwcVo.setBarcode(param.getBarcode()); zphjcdwcVos.add(zphjcdwcVo); } @@ -1855,11 +1967,11 @@ List<String> collect2 = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList()); // 0鏄庣粏寮傚父,1浜乏锛�2浜彸锛�3閮戒寒 - if (collect1.size() == 0 || collect2.size() == 0){ + if (collect1.size() == 0 || collect2.size() == 0) { return R.ok(0); - } else if((collect1.size() == 1 && collect2.size() == 1) || (collect1.size() == 2 && collect2.size() == 2)) { + } else if ((collect1.size() == 1 && collect2.size() == 1) || (collect1.size() == 2 && collect2.size() == 2)) { return R.ok(3); - } else if(collect1.size() == 2 && collect2.size() == 1) { + } else if (collect1.size() == 2 && collect2.size() == 1) { return R.ok(collect2.get(0).equals("宸�") ? 1 : 2); } else { return R.parse("浜俊鍙风伅鏉$爜寮傚父锛�" + barcode); @@ -1867,10 +1979,90 @@ } + @Override + public R getUnfulfilledOrders() { + // 鑾峰彇鏈畬鎴愯鍗曠粺璁′俊鎭� + List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(""); + return R.ok(unfulfilledOrders); + } + + @Override + public R getCrnLaneWayInfo() { + List<CrnLaneWayInfoDto> crnLaneWayInfo = basCrnpMapper.getCrnLaneWayInfo(); + return R.ok(crnLaneWayInfo); + } + + @Override + public R getOutLocInfoByBarcode(String barcode) { + + // 鏍规嵁鎵樼洏鐮佽幏鍙栦换鍔′富妗� + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); + if (wrkMast == null) { + return R.parse("璇ユ潯鐮佹棤姝e湪鎵ц浠诲姟锛�" + barcode); + } + // 鏍规嵁浠诲姟涓绘。鑾峰彇宸ヤ綔妗f槑缁� + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + // 鎻愬彇鍖呰缁勫彿 + List<String> brandList = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList()); + OutLocInfoDto outLocInfoDto = new OutLocInfoDto(); + outLocInfoDto.setWrkNo(wrkMast.getWrkNo()); + List<OutLocInfoDto.Material> materialList = new ArrayList<>(); + for (String brand : brandList) { + // 涓�涓湪绠� + OutLocInfoDto.Material material = new OutLocInfoDto.Material(); + material.setPackageGroupNo(brand); // 鍖呰缁勫彿 + // 鎸夊寘瑁呯粍鍙疯繃婊� + List<WrkDetl> wrkDetls1 = wrkDetls.stream().filter(wrkDetl -> Objects.equals(wrkDetl.getBrand(), brand)).collect(Collectors.toList()); + // 鍗蜂俊鎭� + List<OutLocInfoDto.Material.MaterialDetail> materialDetailList = new ArrayList<>(); + for (WrkDetl wrkDetl : wrkDetls1) { + OutLocInfoDto.Material.MaterialDetail materialDetail = new OutLocInfoDto.Material.MaterialDetail(); + materialDetail.setRollNo(wrkDetl.getModel()); + materialDetail.setBoxNo(wrkDetl.getUnit()); + materialDetail.setSpecs(wrkDetl.getMatnr()); + materialDetail.setBoxType(wrkDetl.getColor()); + materialDetail.setCoreType(wrkDetl.getManu()); + materialDetail.setWidth(wrkDetl.getSku()); + materialDetail.setThickness(wrkDetl.getItemNum()); + materialDetail.setWeight(wrkDetl.getWeight()); + materialDetail.setLength(wrkDetl.getLength()); + materialDetail.setVolume(wrkDetl.getVolume()); + materialDetail.setCustomerName(wrkDetl.getSupp()); + materialDetail.setMemo(wrkDetl.getMemo()); + material.setBoxPos(wrkDetl.getOrigin()); // 鎵樼洏涓婃湪绠变綅缃� + materialDetailList.add(materialDetail); + } + // 璁㈠崟淇℃伅 + WrkDetl wrkDetl = wrkDetls1.get(0); + if (wrkDetl != null && wrkDetl.getOrderNo() != null) { + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo())); + if (order != null) { + material.setOrderNo(order.getOrderNo()); +// material.setMemo(order.getMemo()); +// material.setCustomerName(order.getCstmrName()); + List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(order.getOrderNo()); + if (unfulfilledOrders.size() == 1) { + OrderStatisticsDto orderStatisticsDto = unfulfilledOrders.get(0); + material.setSum(orderStatisticsDto.getSum()); + material.setToShipQuantity(orderStatisticsDto.getToShipQuantity()); + material.setWorkQuantity(orderStatisticsDto.getWorkQuantity()); + material.setCompleteQuantity(orderStatisticsDto.getCompletedQuantity()); + } + } + } + + material.setMaterialDetailList(materialDetailList); + materialList.add(material); + } + outLocInfoDto.setMaterialList(materialList); + + return R.ok(outLocInfoDto); + } + /** * 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。 */ - private int create111Work(WrkMast wrk, List<WrkDetl> wrkDetls, Integer site, Integer staNo,String barcode) { + private int create111Work(WrkMast wrk, List<WrkDetl> wrkDetls, Integer site, Integer staNo, String barcode) { int workNo = commonService.getWorkNo(4); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -1899,7 +2091,7 @@ wrkMastService.insert(wrkMast); // 鎻掑叆宸ヤ綔妗f槑缁� - for (WrkDetl wrkDetl:wrkDetls) { + for (WrkDetl wrkDetl : wrkDetls) { wrkDetl.setWrkNo(workNo); wrkDetl.setBarcode(barcode); wrkDetl.setZpallet(barcode); @@ -1911,6 +2103,7 @@ /** * 鏍规嵁鍑哄簱鐗╂枡鏄庣粏鍒ゆ柇鏄惁鍘昏创鏍�(鍗曞嵎璐存爣锛屽鍗蜂笉璐存爣) + * * @param wrkDetls 鐗╂枡鏄庣粏 * @return 1.澶氬嵎鐩存帴鍑鸿矾寰勶紝4.鍗曞嵎璐存爣璺緞 */ @@ -1918,39 +2111,60 @@ return wrkDetls.size() > 1 ? 1 : 4; // 涓�鏉¤褰曞氨鏄竴鍗� } - public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode,String message) { - boolean success = false; - // 鑾峰彇璇锋眰澶� - Map<String, Object> headers = getHeaders(); + public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo, String barcode, String message) { + int maxRetry = 3; // 鏈�澶氶噸璇� 3 娆� + long retryDelay = 10000; // 閲嶈瘯闂撮殧 10 绉� + boolean finalSuccess = false; - // 鏋勯�犺姹備綋 + Map<String, Object> headers = getHeaders(); JSONObject jsonObject = new JSONObject(); jsonObject.put("workNo", workNo); jsonObject.put("staNo", staNo); jsonObject.put("sourceStaNo", palletizingNo); jsonObject.put("barcode", barcode); String body = jsonObject.toJSONString(); - String response = ""; - try { - response = new HttpHandler.Builder() - .setUri(MesConstant.GWCS_IP_PORT) - .setPath(MesConstant.GWCS_IP_PORT) - .setHeaders(headers) - .setJson(body) - .build() - .doPost(); - if (!Cools.isEmpty(response)) { - success = true; - } else { - log.error(message + "澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.GWCS_IP_PORT + MesConstant.GWCS_IP_PORT, body, response); - } - } catch (Exception e) { - log.error(message + "寮傚父锛歿}", e); - } finally { + + for (int attempt = 1; attempt <= maxRetry; attempt++) { + String response = ""; + boolean success = false; + String attemptMsg = message + "锛堢 " + attempt + " 娆″皾璇曪級"; + try { - // 淇濆瓨鎺ュ彛鏃ュ織 + response = new HttpHandler.Builder() + .setUri(MesConstant.GWCS_IP_PORT) + .setPath(MesConstant.GWCS_FPKW_URL) + .setHeaders(headers) + .setJson(body) + .setTimeout(30, TimeUnit.SECONDS) // 璁剧疆杩炴帴 + 璇诲彇瓒呮椂涓�30绉� + .build() + .doPost(); + + + if (!Cools.isEmpty(response)) { + try { + JSONObject resJson = JSON.parseObject(response); + int code = resJson.getIntValue("code"); // 瑙嗗叿浣撴帴鍙h�屽畾 + if (code == 200) { + success = true; + finalSuccess = true; + log.info("{} 鎴愬姛锛屽搷搴旓細{}", attemptMsg, response); + } else { + log.warn("{} 鍝嶅簲澶辫触锛岃繑鍥瀋ode={}锛屽畬鏁村搷搴旓細{}", attemptMsg, code, response); + } + } catch (Exception parseEx) { + log.warn("{} 鍝嶅簲瑙f瀽澶辫触锛屽唴瀹癸細{}", attemptMsg, response); + } + } else { + log.warn("{} 澶辫触锛屽搷搴斾负绌�", attemptMsg); + } + } catch (Exception e) { + log.error("{} 寮傚父锛歿}", attemptMsg, e.getMessage(), e); + } + + // 姣忔閮借褰曟棩蹇楋紝涓嶈鎴愬姛鎴栧け璐� + try { apiLogService.save( - message, + attemptMsg, MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL, null, "127.0.0.1", @@ -1959,40 +2173,54 @@ success ); } catch (Exception e) { - log.error("", e); + log.error("淇濆瓨鎺ュ彛鏃ュ織寮傚父锛歿}", e.getMessage(), e); + } + + if (success) break; // 鎴愬姛灏变笉鍐嶉噸璇� + + // 濡傛灉杩樻湁涓嬩竴娆¢噸璇曪紝鍒欑瓑寰� + if (attempt < maxRetry) { + try { + Thread.sleep(retryDelay); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } } } - return success; + + return finalSuccess; } - Map<String, Object> getHeaders(){ - Map<String,Object> headers = new HashMap<>(); - headers.put("digi-type","sync "); - headers.put("digi-protocol","raw"); - headers.put("digi-datakey"," XCommon.ImportData"); + + Map<String, Object> getHeaders() { + Map<String, Object> headers = new HashMap<>(); + headers.put("digi-type", "sync "); + headers.put("digi-protocol", "raw"); + headers.put("digi-datakey", " XCommon.ImportData"); return headers; } - private void descSta(Integer staNo,Integer 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); + int[] typeNos = new int[]{10, 110}; + for (Integer typeNo : typeNos) { + descSta3(staNo, crnNo, typeNo); } } - private void descSta3(Integer staNo,Integer crnNo,Integer 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)); + staDesc.setCrnStn(CrnNoRC(crnNo, staDesc.getTypeNo() > 100)); descSta2(staDesc); } - private void descSta2(StaDesc staDesc){ + private void descSta2(StaDesc staDesc) { Date now = new Date(); //鍏ュ簱 int sameRes = staDescService.selectCount(new EntityWrapper<StaDesc>() @@ -2009,9 +2237,9 @@ } } - private Integer CrnNoRC(Integer crnNo,boolean sign){ + private Integer CrnNoRC(Integer crnNo, boolean sign) { Integer crnStn = 0; - switch (crnNo){ + switch (crnNo) { case 1: crnStn = 102; break; @@ -2031,8 +2259,8 @@ crnStn = 117; break; } - if (sign){ - return crnStn-2; + if (sign) { + return crnStn - 2; } return crnStn; } -- Gitblit v1.9.1