From b141c90208b6a82504680d35eacdaecff1cb7e40 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期日, 14 四月 2024 10:39:43 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 518 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 435 insertions(+), 83 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 4e69974..22c5437 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; @@ -17,7 +18,10 @@ import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; +import com.zy.common.model.LocTypeDto; import com.zy.common.model.MesCombParam; +import com.zy.common.model.StartupDto; +import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; @@ -26,10 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -39,11 +40,7 @@ @Service public class MobileServiceImpl implements MobileService { - @Value("${srHangJia.url}") - private String srHangJiaUrl; - @Value("${srHangJia.reportInPath}") - private String reportOutPath; @Autowired private MatService matService; @@ -85,52 +82,155 @@ private ManLocDetlMapper manLocDetlMapper; @Autowired private DocTypeService docTypeService; + @Autowired + private LocDetlRullUpDetailService locDetlRullUpDetailService; + @Autowired + private TagService tagService; + @Autowired + private BasBoxTypeService basBoxTypeService; @Override @Transactional public void trussComb(TrussCombParam param, Long userId) { - param.setBarcode(String.valueOf(new Date().getTime())); + Date now = new Date(); + if (param.getSouSta()==145){ + param.setBarcode(String.valueOf(now.getTime())); + }else { + if (Cools.isEmpty(param.getBarcode())){ + throw new CoolException("鍙傛暟锛氭墭鐩樼爜涓虹┖"); + } + } + param.setPalletizingNo(147); + + //鍒ゆ柇param鍙傛暟 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() != 1){ - throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); + throw new CoolException("鍙傛暟锛氬師绔欑偣缂栧彿涓虹┖"); + }else if (param.getSouSta()==145 && param.getMatList().size() != 1){ + throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖ 鎴栬�� 澶т簬1涓槑缁�"); + }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() > 2){ + throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖ 鎴栬�� 澶т簬2涓槑缁�"); } - param.setStaEnd(param.getPalletizingNo2()); - - try{ - ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, param); - if (success.getCode()!=200){ - throw new CoolException("缁勬墭澶辫触"); + String matnr = null; + List<WaitPakin> waitPakins = new ArrayList<>(); + for (TrussCombParam.MatList matList:param.getMatList()){ + long rollUp = new Date().getTime(); + Mat mat = matService.selectByMatnr(matList.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(matList.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); } - } catch (Exception e){ - throw new CoolException("缁勬墭澶辫触"); + matnr = mat.getMatnr(); + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setModel(matList.getModel()); //鎵规 + waitPakin.setSpecs(matList.getSpecs()); //瑙勬牸 + waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 + waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 + waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� + waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� + waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme((double)matList.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + waitPakin.setRollUp(rollUp); + if (!Cools.isEmpty(matList.getMatDetlList())){ + for (TrussCombParam.MatDetlList matDetlList:matList.getMatDetlList()){ + LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail(); + locDetlRullUpDetail.setUuid(rollUp); + locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl()); + locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString()); + locDetlRullUpDetailService.insert(locDetlRullUpDetail); + } + } + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + waitPakins.add(waitPakin); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short)1); + + StartupDto dto = commonService.getLocNo(1, 1, param.getSouSta(), matnr,null,null, locTypeDto); + + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + 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(0); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setRollUp(waitPakin.getRollUp()); + 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()+"鐩爣搴撲綅宸茶鍗犵敤"); } } + //wms鍏ュ簱缁勬墭 閫�搴撳崟閫�搴撶粍鎵� @Override @Transactional public void trussCombOrder(TrussCombParam param, Long userId) { - - param.setBarcode(String.valueOf(new Date().getTime())); + Date now = new Date(); + param.setBarcode(String.valueOf(now.getTime())); + param.setPalletizingNo(147); //鍒ゆ柇param鍙傛暟 if (Cools.isEmpty(param.getPalletizingNo())){ throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); }else if (Cools.isEmpty(param.getOrderNo())){ throw new CoolException("鍙傛暟锛氶��璐у崟鍗曞彿 orderNo涓虹┖"); - }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){ + }else if (Cools.isEmpty(param.getMatList())){ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); } Order order = orderService.selectByNo(param.getOrderNo()); - if (Cools.isEmpty(order)){ - throw new CoolException("鏈煡璇㈠埌姝よ鍗曪紝鍗曞彿锛�"+param.getOrderNo()); + if (Cools.isEmpty(order) || order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈燂紝鍗曞彿锛�"+param.getOrderNo()); } DocType docType = docTypeService.selectById(order.getDocType()); if (Cools.isEmpty(docType) || !docType.getDocName().equals("閫�璐у叆搴撳崟")){ @@ -143,7 +243,7 @@ } List<String> orderBoxNoList = new ArrayList<>(); for (OrderDetl orderDetl: orderDetls){ - if (orderDetl.getWorkQty()==0){ + if (orderDetl.getWorkQty().equals(0.0)){ orderBoxNoList.add(orderDetl.getBatch()); } } @@ -152,38 +252,189 @@ } List<String> matListBoxNoList = new ArrayList<>(); for (TrussCombParam.MatList matList: param.getMatList()){ - if (!orderBoxNoList.contains(matList.getBoxNo())){ + if (!orderBoxNoList.contains(matList.getBatch())){ throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�"); }else { - matListBoxNoList.add(matList.getBoxNo()); + matListBoxNoList.add(matList.getBatch()); } } List<OrderDetl> orderDetlList = new ArrayList<>(); for (OrderDetl orderDetl: orderDetls){ if (matListBoxNoList.contains(orderDetl.getBatch())){ - orderDetl.setBrand("1"); orderDetlList.add(orderDetl); } } + List<WaitPakin> waitPakins = new ArrayList<>(); - - - - - - TrussCombParam trussCombParam = new TrussCombParam(param, order, orderDetlList); - try{ - ReturnT<String> success = new PostMesDataUtils().postMesData("妗佹灦涓婁綅杞欢", srHangJiaUrl, reportOutPath, trussCombParam); - if (success.getCode()!=200){ - throw new CoolException("缁勬墭澶辫触"); + String matnrSign = ""; + String brandSign = ""; + for (OrderDetl orderDetl:orderDetlList){ + if (Cools.isEmpty(orderDetl.getMatnr()) || Cools.isEmpty(orderDetl.getBrand())){ + throw new CoolException(orderDetl.getOrderNo() + "鎵�閫夋槑缁嗗瓨鍦ㄦ湭鐭ヨ鏍兼垨鑰呮湭鐭ョ鍨嬶紝璇风淮鎶ゆ暟鎹紒"); } - } catch (Exception e){ - throw new CoolException("缁勬墭澶辫触"); + if (matnrSign.equals("")){ + matnrSign = orderDetl.getMatnr(); + brandSign = orderDetl.getBrand(); + }else { + if (!matnrSign.equals(orderDetl.getMatnr())){ + throw new CoolException(orderDetl.getMatnr() + "璇烽�夋嫨鍚屼竴涓鏍肩殑璐х墿锛侊紒锛�"); + } + if (!brandSign.equals(orderDetl.getBrand())){ + throw new CoolException(orderDetl.getMatnr() + "璇烽�夋嫨鍚屼竴绉嶇鍨嬬殑璐х墿锛侊紒锛�"); + } + } + } + Mat mat = matService.selectByMatnr(matnrSign); + if (Cools.isEmpty(mat)) { + throw new CoolException(matnrSign + "鍟嗗搧妗f涓嶅瓨鍦�"); + } + for (OrderDetl orderDetl:orderDetlList){ + WaitPakin waitPakin = new WaitPakin(); + waitPakin.sync(mat); + waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setModel(orderDetl.getModel()); //鎵规 + waitPakin.setSpecs(orderDetl.getSpecs()); //瑙勬牸 + waitPakin.setBatch(orderDetl.getBatch()); //鏈ㄧ缂栫爜 + waitPakin.setBrand(orderDetl.getBrand()); //鏈ㄧ绫诲瀷 + waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� + waitPakin.setWeight(orderDetl.getWeight()); //鍑�閲� + waitPakin.setVolume(orderDetl.getVolume()); //姣涢噸 + waitPakin.setPrice(orderDetl.getPrice()); //闀垮害 + waitPakin.setSpecs(String.valueOf(orderDetl.getSpecs())); //鎺ュご + waitPakin.setOrigin("1"); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� + waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(orderDetl.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setWeight(orderDetl.getWeight()); // 鏈ㄧ涓摐绠斿噣閲� + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + waitPakin.setZpallet(param.getBarcode()); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + waitPakins.add(waitPakin); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short)1); + + StartupDto dto = commonService.getLocNo(1, 1, 145, matnrSign,null,null, locTypeDto); + + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + 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(0); // 瀹瑰櫒绫诲瀷 + wrkMast.setBarcode(param.getBarcode()); + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setOrderNo(order.getOrderNo()); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setZpallet(param.getBarcode()); + 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()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(order.getId(), orderDetls.get(0).getMatnr(), orderDetls.get(0).getBatch(), orderDetls.get(0).getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + orderService.updateSettle(order.getId(), 2L, userId); + } + + @Override + @Transactional + public void trussComb2Car(Integer staNo) { + if (staNo!=212){ + throw new CoolException("鍙厑璁�212鍛煎彨鎵樼洏"); + } + BasDevp basDevp = basDevpService.selectById(212); + if (!basDevp.getAutoing().equals("Y")){ + throw new CoolException("212绔欑偣涓嶆槸鑷姩"); + } else if (basDevp.getLoading().equals("Y")){ + throw new CoolException("212绔欑偣鏈夌墿"); + } else if (basDevp.getWrkNo()!=0){ + throw new CoolException("212绔欑偣鏈夊伐浣滃彿"); + } + WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 212)); + if (!Cools.isEmpty(wrkMast1)){ + throw new CoolException("浠诲姟妗f宸插瓨鍦紒璇风瓑寰�..."); + } + int workNo = commonService.getWorkNo(6); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(61L); // 宸ヤ綔鐘舵�侊細61銆佺瓑寰呯┖鏉� + wrkMast.setIoType(212); // 鍏ュ嚭搴撶姸鎬侊細212.2妤�212鍛煎彨绌烘澘 + wrkMast.setIoPri(10D); // 浼樺厛绾� + wrkMast.setStaNo(212); + wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } } @Override @Transactional - public void trussComb2(PalletizingCompleteParam param, Long userId) { + public void PalletizingCompleteTwoFloorParam(PalletizingCompleteTwoFloorParam param) { + Long userId = 7777L;//涓帶 + param.setPalletizingNo(212); + + WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>() + .eq("io_type", 1).eq("wrk_sts", 1).eq("source_sta_no",212)); + if (!Cools.isEmpty(wrkMast1)){ + throw new CoolException("瀛樺湪涓�绗斿伐浣滄。妗堬紝璇峰厛鍏ュ簱锛�"); + } + //鍒ゆ柇param鍙傛暟 if (Cools.isEmpty(param.getBarcode())){ throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖"); @@ -191,53 +442,65 @@ throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); }else if (Cools.isEmpty(param.getBoxType())){ throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖"); - }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0){ + }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); } - ArrayList<String> positions = new ArrayList<>(); //鏈ㄧ浣嶇疆鏌ラ噸 (orgin) + String matnrOne = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙 1銆佸乏 + String matnrTwo = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙 2銆佸彸 ArrayList<String> boxNos = new ArrayList<>(); //鏈ㄧ鍞竴缂栫爜鏌ラ噸 锛坆atch锛� //鍒ゆ柇matLists鍙傛暟 - for (PalletizingCompleteParam.MatList matList:param.getMatLists()){ + for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){ if (Cools.isEmpty(matList.getMatnr())){ - throw new CoolException("鍙傛暟锛氱墿鏂欑紪鐮� matnr涓虹┖"); + throw new CoolException("鍙傛暟锛氳鏍� matnr涓虹┖"); }else if (Cools.isEmpty(matList.getPosition())){ - throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鐮佸灈浣嶇疆 position涓虹┖"); - }else if (Cools.isEmpty(matList.getBoxNo())){ - throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 boxNo涓虹┖"); - }else if (Cools.isEmpty(matList.getAnfme()) || matList.getAnfme().equals(0)){ - throw new CoolException("鐗╂枡缂栫爜锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ涓摐绠旀暟閲� anfme涓虹┖"); + 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涓虹┖"); + 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涓虹┖"); } - if (!positions.contains(matList.getPosition())){ - positions.add(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 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.getBoxNo()+",鏈ㄧ浣嶇疆瀛樺湪閲嶅锛�"+matList.getPosition()); + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ浣嶇疆閿欒锛�"+matList.getPosition()); } - if (!boxNos.contains(matList.getBoxNo())){ - boxNos.add(matList.getBoxNo()); + if (!boxNos.contains(matList.getBatch())){ + boxNos.add(matList.getBatch()); }else { - throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBoxNo()+",鏈ㄧ缂栫爜瀛樺湪閲嶅"); + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ缂栫爜瀛樺湪閲嶅"); + } + + if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", matList.getBatch()))!=0 + || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", matList.getBatch()))!=0 + || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", matList.getBatch()))!=0){ + throw new CoolException("鏈ㄧ缂栧彿锛�"+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 @@ -245,23 +508,40 @@ throw new CoolException("鎵樼洏鏉$爜锛�"+param.getBarcode()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); } - + String matnr = null; + List<WaitPakin> waitPakins = new ArrayList<>(); Date now = new Date(); - for (PalletizingCompleteParam.MatList matList:param.getMatLists()){ + for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){ Mat mat = matService.selectByMatnr(matList.getMatnr()); if (Cools.isEmpty(mat)) { - throw new CoolException(matList.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + mat = new Mat(); + mat.setMatnr(matList.getMatnr()); + mat.setMaktx(matList.getMatnr()); + mat.setTagId(tagService.getTop().getId()); + mat.setBrand(param.getBoxType()); + mat.setCreateBy(userId); + mat.setCreateTime(now); + mat.setUpdateBy(userId); + mat.setUpdateTime(now); + mat.setStatus(1); + if (!matService.insert(mat)) { + throw new CoolException("瑙勬牸娣诲姞澶辫触锛岃鑱旂郴绠$悊鍛�"); + } } + matnr = matList.getMatnr(); WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setModel(matList.getBatch()); //鎵规 - waitPakin.setSpecs(matList.getSpecs()); //瑙勬牸 - waitPakin.setBatch(matList.getBoxNo()); //鏈ㄧ缂栫爜 + waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 + waitPakin.setModel(matList.getModel()); //鍗峰彿 鍞竴鍊� waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� - waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(matList.getAnfme().doubleValue()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setWeight(matList.getWeight()); //鍑�閲� + waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸 + waitPakin.setPrice(matList.getRollExtent()); //闀垮害 + waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご + waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 waitPakin.setStatus("Y"); // 鐘舵�� waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); @@ -270,6 +550,63 @@ if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } + waitPakins.add(waitPakin); + } + + LocTypeDto locTypeDto = new LocTypeDto(); + locTypeDto.setLocType1((short)1); + + StartupDto dto = commonService.getLocNo(1, 1, 212, matnr,null,null, locTypeDto); + + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + 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(0); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + wrkDetl.setZpallet(param.getBarcode()); + 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()+"鐩爣搴撲綅宸茶鍗犵敤"); } } @Override @@ -827,4 +1164,19 @@ throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + @Override + @Transactional + public List<Map<String, Object>> boxTypeComb() { + EntityWrapper<BasBoxType> wrapper = new EntityWrapper<>(); + List<Map<String, Object>> result = new ArrayList<>(); + List<BasBoxType> basBoxTypes = basBoxTypeService.selectList(wrapper.orderBy("id",true)); + for (BasBoxType basBoxType : basBoxTypes){ + Map<String, Object> map = new HashMap<>(); + map.put("boxType", basBoxType.getBoxType()); + map.put("boxSpecs", basBoxType.getBoxSpecs()); + result.add(map); + } + return result; + } } -- Gitblit v1.9.1