From ff724aea871b8373dce71857024ca62f93bf709f Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期一, 19 八月 2024 14:42:52 +0800 Subject: [PATCH] 打带获取木箱类型 --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 252 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 183 insertions(+), 69 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 813209f..0d76faa 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -14,6 +14,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.MatMapper; import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; @@ -30,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -39,6 +41,12 @@ @Slf4j @Service public class OpenServiceImpl implements OpenService { + + // 浜屾ゼ鍫嗗灈鏈哄搴斿叆搴撶珯鐐� + 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}; + @Autowired private OrderService orderService; @@ -84,6 +92,9 @@ private LocMastService locMastService; @Autowired private ApiLogService apiLogService; + + @Resource + private MatMapper matMapper; @Override @Transactional @@ -1025,74 +1036,167 @@ @Override @Transactional - public String fxprk(List<FxprkParam> param) { -// -// // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅 -// List<Mat> list = matService.selectList(new EntityWrapper<Mat>().eq("brand", param.getPackageGroupNo())); -// if (list.isEmpty()) { -// throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getPackageGroupNo()); + public String fxprk(FxprkParam param) { + + // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅 + List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList()))); + if (list.isEmpty()) { + throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getBoxList().toString()); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short) 1); + StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); + + // 杩斿洖GWCS鐩爣淇℃伅 + boolean result = pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo(), param.getBarcode()); +// if (!result) { +// throw new CoolException("鍏ュ簱鍥炴帹鍏ュ簱鐮佸ご缁橤WCS澶辫触"); // } -// -// LocTypeDto locTypeDto = new LocTypeDto(); -// locTypeDto.setLocType1((short) 1); -// StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); -// -// // 杩斿洖GWCS鐩爣淇℃伅 -// pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo()); -// -// int workNo = dto.getWorkNo(); -// Date now = new Date(); -// // 鐢熸垚宸ヤ綔妗� -// WrkMast wrkMast = new WrkMast(); -// wrkMast.setWrkNo(workNo); -// wrkMast.setIoTime(new Date()); -// wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 -// wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 -// wrkMast.setIoPri(13D); // 浼樺厛绾� -// wrkMast.setCrnNo(dto.getCrnNo()); -// wrkMast.setSourceStaNo(param.getPalletizingNo()); -// wrkMast.setStaNo(dto.getStaNo()); -// wrkMast.setLocNo(dto.getLocNo()); -// wrkMast.setBarcode(list.get(0).getBarcode()); // 鎵樼洏鐮� -// wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 -// wrkMast.setPicking("N"); // 鎷f枡 -// wrkMast.setExitMk("N"); // 閫�鍑� -// wrkMast.setEmptyMk("N"); // 绌烘澘 -// wrkMast.setLinkMis("Y"); -// wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 -// // 鎿嶄綔浜哄憳鏁版嵁 -// wrkMast.setAppeTime(now); -// wrkMast.setModiTime(now); -// boolean res = wrkMastService.insert(wrkMast); -// if (!res) { -// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); -// } -// -// for (Mat obj : list) { -// WrkDetl wrkDetl = new WrkDetl(); -// wrkDetl.setWrkNo(wrkMast.getWrkNo()); -// wrkDetl.setAnfme(1.0); -// wrkDetl.sync(obj); -// wrkDetl.setIoTime(now); -// wrkDetl.setAppeTime(now); -// wrkDetl.setModiTime(now); -// if (!wrkDetlService.insert(wrkDetl)) { -// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); -// } -// } -// -// // 鏇存柊鐩爣搴撲綅鐘舵�� -// LocMast locMast = locMastService.selectById(dto.getLocNo()); -// if (locMast.getLocSts().equals("O")) { -// locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 -// locMast.setModiTime(now); -// if (!locMastService.updateById(locMast)) { -// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); -// } -// } else { -// throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤"); -// } + + int workNo = dto.getWorkNo(); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(param.getPalletizingNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + + for (Mat obj : list) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(obj); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setAnfme(1.0); + // 閲嶆柊瀹氫綅鏈ㄧ浣嶇疆 + 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()); + } + break; + } + } + wrkDetl.setIoTime(now); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("O")) { + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤"); + } return "鍏ュ簱鎴愬姛"; + } + + @Override + @Transactional + public R kthl(KthlParam param) { + + // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢� + List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3) + .eq("wrk_no",0).eq("in_enable","Y").eq("out_enable","Y")); + if (basCrnps.isEmpty()) { + // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛� + basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y") + .eq("out_enable","Y")); + } + if (basCrnps.isEmpty()) { + throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�"); + } + // 鍙敤鍫嗗灈鏈哄垪琛� + List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); + Integer crnNo = crnNoList.get(0); + + int workNo = commonService.getWorkNo(5); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // + wrkMast.setIoType(3); // 绔欏埌绔� + wrkMast.setIoPri(14D); // 浼樺厛绾� + wrkMast.setCrnNo(crnNo); + wrkMast.setSourceStaNo(secondFloorIn[crnNo]); + wrkMast.setStaNo(secondFloorOut[crnNo]); + wrkMast.setLocNo(""); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 杩斿洖GWCS鐩爣淇℃伅 + pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode()); + + return R.ok("绌烘墭鍥炴祦璇锋眰鎴愬姛"); + } + + @Override + public R tb(TbParam param) { + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("barcode", param.getBarcode())); + if (wrkDetls.isEmpty()) { + return R.parse("鏃犵墿鏂欐槑缁嗕俊鎭�"); + } + List<String> collect = wrkDetls.stream().map(WrkDetl::getUnit).distinct().collect(Collectors.toList()); + return R.ok(collect); + } + + @Override + public R dd(TbParam param) { + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("barcode", param.getBarcode())); + if (wrkDetls.isEmpty()) { + return R.parse("鏃犵墿鏂欐槑缁嗕俊鎭�"); + } + List<DdParam> collect = wrkDetls.stream().map(wrkDetl -> { + DdParam ddParam = new DdParam(); + ddParam.setBoxPos(wrkDetl.getOrigin()); + ddParam.setBoxType(wrkDetl.getColor()); + return ddParam; + }).distinct().collect(Collectors.toList()); + + return R.ok(collect); } @Override @@ -1124,7 +1228,7 @@ StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0); // 杩斿洖GWCS鐩爣淇℃伅 - pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo()); + pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo(),param.getBarcode()); int workNo = dto.getWorkNo(); @@ -1349,11 +1453,19 @@ throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉绗﹀悎锛屼换鍔″彿锛�" + param.getWorkNo() + "锛屽伐浣滄。鐘舵�侊細" + wrkMast.getWrkSts()); } + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", param.getWorkNo())); + + // 鏄惁闇�瑕佸鏍�(鍑哄簱鍗曢渶澶嶆牳) + boolean flag = false; + if (!wrkDetls.isEmpty()) { + flag = wrkDetls.stream().anyMatch(wrkDetl -> wrkDetl.getOrderNo() != null); + } + // 鍒拌揪鍑哄簱鍙g‘璁や负1锛屾洿鏂板伐浣滄。鐘舵�佷负57.鍑哄簱瀹屾垚 if (param.getOutLocResult() == 1) { wrkMast.setWrkSts(20L); // 绌烘墭鐩樺埌浣嶇洿鎺ユ洿鏂板伐浣滄。鐘舵�佷负14.宸插嚭搴撴湭纭锛岀┖鎵樻棤闇�澶嶆牳纭 - if (wrkMast.getIoType() == 110) { + if (!flag || wrkMast.getIoType() == 110) { wrkMast.setWrkSts(14L); } wrkMastService.updateById(wrkMast); @@ -1568,7 +1680,7 @@ return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗� } - public void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) { + public boolean pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo,String barcode) { boolean success = false; // 鑾峰彇璇锋眰澶� Map<String, Object> headers = getHeaders(); @@ -1578,6 +1690,7 @@ jsonObject.put("workNo", workNo); jsonObject.put("staNo", staNo); jsonObject.put("sourceStaNo", palletizingNo); + jsonObject.put("barcode", barcode); String body = jsonObject.toJSONString(); String response = ""; try { @@ -1618,6 +1731,7 @@ log.error("", e); } } + return success; } Map<String, Object> getHeaders(){ -- Gitblit v1.9.1