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 | 607 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 589 insertions(+), 18 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 2e8c7f3..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,32 +4,33 @@ 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.*; -import com.zy.asrs.entity.param.CombParam; -import com.zy.asrs.entity.param.MobileAdjustParam; -import com.zy.asrs.entity.param.OffSaleParam; -import com.zy.asrs.entity.param.OpenOrderPakinParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; +import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.utils.MatUtils; +import com.zy.asrs.utils.PostMesDataUtils; import com.zy.common.CodeRes; 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; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; 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.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -38,6 +39,8 @@ @Slf4j @Service public class MobileServiceImpl implements MobileService { + + @Autowired private MatService matService; @@ -77,13 +80,543 @@ private ManLocDetlService manLocDetlService; @Autowired 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) { + 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("鍙傛暟锛氬師绔欑偣缂栧彿涓虹┖"); + }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涓槑缁�"); + } + + 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涓嶅瓨鍦�"); + } + 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) { + 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())){ + throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); + } + + Order order = orderService.selectByNo(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("閫�璐у叆搴撳崟")){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+"涓嶆槸閫�璐у叆搴撳崟"); + } + + List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){ + throw new CoolException("鏈煡璇㈠埌姝よ鍗曟槑缁嗭紝鍗曞彿锛�"+param.getOrderNo()); + } + List<String> orderBoxNoList = new ArrayList<>(); + for (OrderDetl orderDetl: orderDetls){ + if (orderDetl.getWorkQty().equals(0.0)){ + orderBoxNoList.add(orderDetl.getBatch()); + } + } + if (orderBoxNoList.size()==0 || orderBoxNoList.size()<param.getMatList().size()){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 閫�璐ф暟閲忓ぇ浜庢槑缁嗘暟閲�"); + } + List<String> matListBoxNoList = new ArrayList<>(); + for (TrussCombParam.MatList matList: param.getMatList()){ + if (!orderBoxNoList.contains(matList.getBatch())){ + throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�"); + }else { + matListBoxNoList.add(matList.getBatch()); + } + } + List<OrderDetl> orderDetlList = new ArrayList<>(); + for (OrderDetl orderDetl: orderDetls){ + if (matListBoxNoList.contains(orderDetl.getBatch())){ + orderDetlList.add(orderDetl); + } + } + List<WaitPakin> waitPakins = new ArrayList<>(); + + String matnrSign = ""; + String brandSign = ""; + for (OrderDetl orderDetl:orderDetlList){ + if (Cools.isEmpty(orderDetl.getMatnr()) || Cools.isEmpty(orderDetl.getBrand())){ + throw new CoolException(orderDetl.getOrderNo() + "鎵�閫夋槑缁嗗瓨鍦ㄦ湭鐭ヨ鏍兼垨鑰呮湭鐭ョ鍨嬶紝璇风淮鎶ゆ暟鎹紒"); + } + 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 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涓虹┖"); + }else if (Cools.isEmpty(param.getPalletizingNo())){ + throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖"); + }else if (Cools.isEmpty(param.getBoxType())){ + throw new CoolException("鍙傛暟锛氭湪绠辩被鍨� boxType涓虹┖"); + }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size()==0){ + throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖"); + } + + String matnrOne = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙 1銆佸乏 + String matnrTwo = "";//鏈ㄧ鐩稿悓浣嶇疆 瑙勬牸 matnr鏍¢獙 2銆佸彸 + ArrayList<String> boxNos = new ArrayList<>(); //鏈ㄧ鍞竴缂栫爜鏌ラ噸 锛坆atch锛� + //鍒ゆ柇matLists鍙傛暟 + for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){ + if (Cools.isEmpty(matList.getMatnr())){ + throw new CoolException("鍙傛暟锛氳鏍� matnr涓虹┖"); + }else if (Cools.isEmpty(matList.getPosition())){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鐮佸灈浣嶇疆 position涓虹┖"); + }else if (Cools.isEmpty(matList.getBatch())){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 batch涓虹┖"); + }else if (Cools.isEmpty(matList.getModel())){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗峰彿 model涓虹┖"); + }else if (Cools.isEmpty(matList.getBatch())){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鏈ㄧ缂栧彿 boxNo涓虹┖"); + }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍑�閲� weight涓虹┖"); + }else if (Cools.isEmpty(matList.getRoughWeight()) || matList.getRoughWeight().equals(0D)){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細姣涢噸 roughWeight涓虹┖"); + }else if (Cools.isEmpty(matList.getRollExtent()) || matList.getRollExtent().equals(0D)){ + throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗烽暱搴� rollExtent涓虹┖"); + } + + if (matList.getPosition().equals("1")){//1銆佸乏 2銆佸彸 + if (!matnrOne.equals("")){ + if (!matnrOne.equals(matList.getMatnr())){ + throw new CoolException("鏈ㄧ浣嶇疆锛�"+matList.getPosition()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�"); + } + }else { + matnrOne=matList.getMatnr(); + } + }else if (matList.getPosition().equals("2")){ + if (!matnrTwo.equals("")){ + if (!matnrTwo.equals(matList.getMatnr())){ + throw new CoolException("鏈ㄧ浣嶇疆锛�"+matList.getPosition()+"瀛樺湪涓嶅悓瑙勬牸鍗蜂俊鎭�"); + } + }else { + matnrTwo=matList.getMatnr(); + } + }else { + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ浣嶇疆閿欒锛�"+matList.getPosition()); + } + + if (!boxNos.contains(matList.getBatch())){ + boxNos.add(matList.getBatch()); + }else { + throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ缂栫爜瀛樺湪閲嶅"); + } + + 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()+"宸插瓨鍦紝璇峰嬁閲嶅鍏ュ簱"); + } + } + + 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()+"宸插瓨鍦紝璇峰嬁閲嶅缁勬墭"); + } + + String matnr = null; + List<WaitPakin> waitPakins = new ArrayList<>(); + Date now = new Date(); + for (PalletizingCompleteTwoFloorParam.MatList matList:param.getMatList()){ + Mat mat = matService.selectByMatnr(matList.getMatnr()); + if (Cools.isEmpty(mat)) { + mat = new Mat(); + mat.setMatnr(matList.getMatnr()); + mat.setMaktx(matList.getMatnr()); + mat.setTagId(tagService.getTop().getId()); + mat.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.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜 //鎵规 鍞竴鍊� 绠卞彿 + waitPakin.setModel(matList.getModel()); //鍗峰彿 鍞竴鍊� + waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷 + waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� + waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� + waitPakin.setWeight(matList.getWeight()); //鍑�閲� + waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸 + waitPakin.setPrice(matList.getRollExtent()); //闀垮害 + waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご + waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵�� + waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 + waitPakin.setStatus("Y"); // 鐘舵�� + waitPakin.setAppeUser(userId); + waitPakin.setAppeTime(now); + waitPakin.setModiUser(userId); + waitPakin.setModiTime(now); + if (!waitPakinService.insert(waitPakin)) { + throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); + } + 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 @Transactional public void comb(CombParam param, Long userId) { if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); + } + if(param.getCombMats().size()>1){ + throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒"); } // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). @@ -91,10 +624,18 @@ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); } + if(param.getBarcode().length()!=8){ + throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode()); + } + if (param.getCombMats().size()>1){ + throw new CoolException("涓嶅厑璁告贩鏂�===>>" + param.getBarcode()); + } + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); - if (countLoc > 0 || countWrk > 0) { - throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode())); + if (countLoc > 0 || countWrk > 0 || countwait > 0) { + throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); } Date now = new Date(); @@ -139,7 +680,7 @@ // 鍏宠仈缁勬墭 } else { Order order = orderService.selectByNo(param.getOrderNo()); - if (order.getSettle() > 2) { + if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); } // 鐢熸垚鍏ュ簱閫氱煡妗� @@ -191,6 +732,7 @@ } + // 鍟嗗搧涓婃灦 @Override public void onSale(CombParam param) { Date now = new Date(); @@ -211,14 +753,14 @@ throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鏁伴噺鏈夎锛�"); } if (Cools.isEmpty(combMat.getBatch())){ - throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); +// throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); } ManLocDetl manLocDetl = new ManLocDetl(); manLocDetl.setLocNo(locno); manLocDetl.setNodeId(node.getId()); manLocDetl.setMaktx(mat.getMaktx()); manLocDetl.setMatnr(mat.getMatnr()); - manLocDetl.setBatch(combMat.getBatch()); + manLocDetl.setBatch(Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch()); manLocDetl.setAnfme(combMat.getAnfme()); manLocDetl.setModiTime(now); if (!manLocDetlService.insert(manLocDetl)) { @@ -227,15 +769,25 @@ } } + // 鍟嗗搧涓嬫灦 @Override public void offSale(OffSaleParam offSaleParam) { - List<ManLocDetl> manLocDetls = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); - if (Cools.isEmpty(manLocDetls)){ - throw new CoolException("鍟嗗搧涓嬫灦澶辫触锛�"); + ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); + if (Cools.isEmpty(manLocDetl)){ + throw new CoolException("鏃犳鍟嗗搧锛�"); } - int i = manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); - System.out.println(i); + double anfme = manLocDetl.getAnfme() - offSaleParam.getAnfme(); + if (anfme < 0) { + throw new CoolException("鍟嗗搧搴撳瓨涓嶈冻锛�"); + } else if (anfme == 0){ + manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); + } + manLocDetlMapper.updateAnfme0(anfme,manLocDetl.getNodeId()); } + + // 鏌ユ壘鍟嗗搧 + + @Override @Transactional public void adjust(MobileAdjustParam param, Long userId) { @@ -573,6 +1125,10 @@ wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("N"); wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setSheetNo("0"); //寰愬伐姹変簯鎷嗗灈鏍囪锛�0: 鍒濆 1: 鏈媶 2:宸叉媶 3锛氬凡澶勭悊鍙笅涓�姝ワ紙杞巻鍙叉。锛� + if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){ + wrkMast.setSheetNo("3"); + } wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); @@ -608,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