From 6696808ab2714a532a4841fe2b8ca05687732762 Mon Sep 17 00:00:00 2001 From: zc <zc@123> Date: 星期五, 01 八月 2025 12:54:32 +0800 Subject: [PATCH] 完善erp对接 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 218 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 158 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 3f4ac35..5d4101b 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -174,15 +174,22 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } if (!locDetlDtos.isEmpty()) { LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) { - // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 - stockOut(staNo, locDetlDtos, null, userId); + if (staNo.getDevNo() == 1135 && locMast.getLocType1() == 2) { + throw new CoolException("鎵�閫夊簱浣嶄笉鏄綆搴撲綅鏃犳硶璋冩嫧锛屽簱浣嶅彿锛歿}" + locMast.getLocNo()); + } + if(staNo.getDevNo()>=1100){ + // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 + stockOut(staNo, locDetlDtos, null, userId); + }else { + stockOutSXK(staNo, locDetlDtos, null, userId); + } } else { throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$()); } @@ -228,6 +235,11 @@ LocMast locMast = locMastService.selectById(dto.getLocNo()); Integer outSta = staNo.getDevNo(); + if (outSta == 1135 || outSta == 1031) { + if (101 != ioType) { + throw new CoolException("璇ョ珯鐐瑰繀椤诲叏鏉垮嚭搴擄紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo()); + } + } // //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202 // if(locMast.getCrnNo()==2){ // outSta = ioType == 101 ? 204 : 202; @@ -526,30 +538,26 @@ LocMast locMast = locMastService.selectById(taskDto.getLocNo()); List<LocMast> locMasts = new ArrayList<>(); - if ((locMast.getBay1() >= 1 && locMast.getBay1() <= 2) || (locMast.getBay1() >= 6 && locMast.getBay1() <= 7 && locMast.getRow1() != 36 && locMast.getRow1() != 29) || (locMast.getBay1() >= 11 && locMast.getBay1() <= 12)) { + if ((locMast.getBay1() >= 3 && locMast.getBay1() <= 6) ) { locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("gro1", locMast.getGro1()) - .eq("crn_no", 7) - .eq("loc_type1", locMast.getLocType1()) - .orderBy("bay1", false)); - } else { - locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("gro1", locMast.getGro1()) + .eq("row1", locMast.getBay1()) + .in("bay1", 3,4,5,6) .eq("crn_no", 7) .eq("loc_type1", locMast.getLocType1()) .orderBy("bay1", true)); - } - for (LocMast locMast1 : locMasts) { - if (locMast1.getLocNo().equals(taskDto.getLocNo())) { - break; - } - if (locMast1.getLocSts().equals("X")) { - throw new CoolException(taskDto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱"); - } - if (locMast1.getLocSts().equals("F")) { - moveLocForDeepLoc(locMast1); + for (LocMast locMast1 : locMasts) { + if (locMast1.getLocNo().equals(taskDto.getLocNo())) { + break; + } + if (locMast1.getLocSts().equals("X")) { + throw new CoolException(taskDto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱"); + } + if (locMast1.getLocSts().equals("F")) { + locMast = locMast1; + } } } + // 鑾峰彇璺緞 int ioType = taskDto.isAll() ? 101 : 103; @@ -904,7 +912,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -932,7 +940,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -1218,7 +1226,7 @@ if (Cools.isEmpty(locMast)) { throw new CoolException("搴撲綅涓嶅瓨鍦�"); } - if (!(locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) { + if (!(locMast.getLocSts().equals("P") ||locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O"))) { throw new CoolException("褰撳墠搴撲綅涓嶅彲璋冩暣锛佸簱浣嶇姸鎬侊細" + locMast.getLocSts$()); } @@ -1242,7 +1250,7 @@ if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getSku())) { throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触"); } // 淇濆瓨璋冩暣璁板綍 @@ -1292,7 +1300,8 @@ Mat mat = matService.selectByMatnr(adjust.getMatnr()); LocDetl locDetl = new LocDetl(); locDetl.sync(mat); - locDetl.setBatch(adjust.getBatch()); + locDetl.setDanger(adjust.getDanger()); + locDetl.setSku(adjust.getBatch()); locDetl.setLocNo(locMast.getLocNo()); locDetl.setAnfme(adjust.getCount()); // 鏁伴噺 locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅 @@ -1329,6 +1338,9 @@ } locMast.setModiUser(userId); locMast.setModiTime(now); + if (locMast.getLocSts().equals("O")){ + locMast.setBarcode(""); + } if (!locMastService.updateById(locMast)) { throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); } @@ -1521,7 +1533,7 @@ // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", wrkMast.getIoType() - 50) - .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 + .eq("stn_no", wrkMast.getSourceStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { @@ -1693,7 +1705,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -1714,7 +1726,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getSku()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -1763,30 +1775,50 @@ LocMast locMast = locMastService.selectById(dto.getLocNo()); List<LocMast> locMasts = new ArrayList<>(); - if ((locMast.getBay1() >= 1 && locMast.getBay1() <= 2) || (locMast.getBay1() >= 6 && locMast.getBay1() <= 7 && locMast.getRow1() != 36 && locMast.getRow1() != 29) || (locMast.getBay1() >= 11 && locMast.getBay1() <= 12)) { +// if ((locMast.getBay1() >= 1 && locMast.getBay1() <= 2) || (locMast.getBay1() >= 6 && locMast.getBay1() <= 7 && locMast.getRow1() != 36 && locMast.getRow1() != 29) || (locMast.getBay1() >= 11 && locMast.getBay1() <= 12)) { +// locMasts = locMastService.selectList(new EntityWrapper<LocMast>() +// .eq("gro1", locMast.getGro1()) +// .eq("crn_no", 7) +// .eq("loc_type1", locMast.getLocType1()) +// .orderBy("bay1", false)); +// } else { +// locMasts = locMastService.selectList(new EntityWrapper<LocMast>() +// .eq("gro1", locMast.getGro1()) +// .eq("crn_no", 7) +// .eq("loc_type1", locMast.getLocType1()) +// .orderBy("bay1", true)); +// } +// for (LocMast locMast1 : locMasts) { +// if (locMast1.getLocNo().equals(dto.getLocNo())) { +// break; +// } +// if (locMast1.getLocSts().equals("X")) { +// throw new CoolException(dto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱"); +// } +// if (locMast1.getLocSts().equals("F")) { +// moveLocForDeepLoc(locMast1); +// } +// } + if ((locMast.getBay1() >= 3 && locMast.getBay1() <= 6) ) { locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("gro1", locMast.getGro1()) - .eq("crn_no", 7) - .eq("loc_type1", locMast.getLocType1()) - .orderBy("bay1", false)); - } else { - locMasts = locMastService.selectList(new EntityWrapper<LocMast>() - .eq("gro1", locMast.getGro1()) + .eq("row1", locMast.getBay1()) + .in("bay1", 3,4,5,6) .eq("crn_no", 7) .eq("loc_type1", locMast.getLocType1()) .orderBy("bay1", true)); - } - for (LocMast locMast1 : locMasts) { - if (locMast1.getLocNo().equals(dto.getLocNo())) { - break; - } - if (locMast1.getLocSts().equals("X")) { - throw new CoolException(dto.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱"); - } - if (locMast1.getLocSts().equals("F")) { - moveLocForDeepLoc(locMast1); + for (LocMast locMast1 : locMasts) { + if (locMast1.getLocNo().equals(locMast.getLocNo())) { + break; + } + if (locMast1.getLocSts().equals("X")) { + throw new CoolException(locMast.getLocNo() + "搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱"); + } + if (locMast1.getLocSts().equals("F")) { + locMast = locMast1; + } } } + Integer outSta = staNo.getDevNo(); // //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202 @@ -1863,7 +1895,6 @@ @Transactional public void toSxk(WrkMast wrkMastold, List<WrkDetl> wrkDetls, Short locType) { - LocTypeDto locTypeDto = new LocTypeDto(); locTypeDto.setLocType1(locType); StartupDto dto = commonService.getLocNo(1, 1031, null, null, null, locTypeDto, false); @@ -1877,9 +1908,11 @@ WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(new Date()); - wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細1.鐢熸垚鍏ュ簱ID - wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細 1.搴撴牸绉昏浇 + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細1.鐢熸垚鍏ュ簱ID + wrkMast.setIoType(wrkMastold.getIoType() - 100); // 鍏ュ嚭搴撶姸鎬侊細 1.搴撴牸绉昏浇 wrkMast.setIoPri(12D); + wrkMast.setStaNo(1032); + wrkMast.setSourceStaNo(1031); wrkMast.setCrnNo(7); wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 wrkMast.setFullPlt("Y"); // 婊℃澘 @@ -1888,6 +1921,7 @@ wrkMast.setEmptyMk("Y"); // 绌烘澘 wrkMast.setBarcode(wrkMastold.getBarcode()); // 鎵樼洏鐮� wrkMast.setLinkMis("N"); + wrkMast.setPltType(wrkMastold.getWrkNo()); wrkMast.setAppeTime(new Date()); wrkMast.setModiTime(new Date()); boolean res = wrkMastService.insert(wrkMast); @@ -1895,16 +1929,18 @@ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } // 宸ヤ綔妗f槑缁嗕繚瀛� - for (WrkDetl wrk : wrkDetls) { - WrkDetl wrkDetl = new WrkDetl(); - Synchro.Copy(wrk, wrkDetl); - wrkDetl.setWrkNo(workNo); - wrkDetl.setIoTime(new Date()); - wrkDetl.setAnfme(wrk.getAnfme()); - wrkDetl.setAppeTime(new Date()); - wrkDetl.setModiTime(new Date()); - if (!wrkDetlService.insert(wrkDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + if (wrkDetls != null) { + for (WrkDetl wrk : wrkDetls) { + WrkDetl wrkDetl = new WrkDetl(); + Synchro.Copy(wrk, wrkDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(new Date()); + wrkDetl.setAnfme(wrk.getAnfme()); + wrkDetl.setAppeTime(new Date()); + wrkDetl.setModiTime(new Date()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } } } // 淇敼鐩爣搴撲綅鐘舵�� @@ -1920,5 +1956,67 @@ } + @Transactional + public void toCrn(WrkMast wrkMastold, List<WrkDetl> wrkDetls, Short locType) { + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1(locType); + StartupDto dto = commonService.getLocNo(1, 1135, null, null, null, locTypeDto, false); + if (Cools.isEmpty(dto)) { + throw new CoolException("鍘诲爢鍨涙満鏈壘鍒板簱浣�"); + } + LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", dto.getLocNo())); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細1.鐢熸垚鍏ュ簱ID + wrkMast.setIoType(wrkMastold.getIoType() - 100); // 鍏ュ嚭搴撶姸鎬侊細 1.鍏ュ簱 + wrkMast.setIoPri(12D); + wrkMast.setCrnNo(1); + wrkMast.setStaNo(1131); + wrkMast.setSourceStaNo(1135); + wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 + wrkMast.setFullPlt(wrkDetls == null ? "N" : "Y"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(wrkDetls != null ? "N" : "Y"); // 绌烘澘 + wrkMast.setBarcode(wrkMastold.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setPltType(wrkMastold.getWrkNo()); + wrkMast.setAppeTime(new Date()); + wrkMast.setModiTime(new Date()); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + if (wrkDetls != null) { + for (WrkDetl wrk : wrkDetls) { + WrkDetl wrkDetl = new WrkDetl(); + Synchro.Copy(wrk, wrkDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(new Date()); + wrkDetl.setAnfme(wrk.getAnfme()); + wrkDetl.setAppeTime(new Date()); + wrkDetl.setModiTime(new Date()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + } + // 淇敼鐩爣搴撲綅鐘舵�� + if (loc.getLocSts().equals("O")) { + loc.setLocSts("S"); // S.鍏ュ簱棰勭害 + loc.setModiTime(new Date()); + if (!locMastService.updateById(loc)) { + throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException("绉昏浆澶辫触"); + } + + } } -- Gitblit v1.9.1