From a29aa2ea80eaaea6acff08068a04de47b69478a8 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期五, 19 七月 2024 10:05:19 +0800 Subject: [PATCH] 盘点出入库接口开发 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 344 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 288 insertions(+), 56 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 52ba3e1..472cf6a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -10,10 +10,7 @@ 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; @@ -24,14 +21,11 @@ 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 javax.annotation.Resource; +import java.util.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -85,7 +79,15 @@ private DocTypeService docTypeService; @Autowired private LocDetlRullUpDetailService locDetlRullUpDetailService; + @Autowired + private TagService tagService; + @Autowired + private BasBoxTypeService basBoxTypeService; + @Autowired + private WrkMastLogService wrkMastLogService; + @Resource + private OpenServiceImpl openServiceImpl; @Override @Transactional @@ -221,7 +223,7 @@ 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涓虹┖"); } @@ -240,7 +242,7 @@ } List<String> orderBoxNoList = new ArrayList<>(); for (OrderDetl orderDetl: orderDetls){ - if (orderDetl.getWorkQty()==0){ + if (orderDetl.getWorkQty().equals(0.0)){ orderBoxNoList.add(orderDetl.getBatch()); } } @@ -252,45 +254,61 @@ if (!orderBoxNoList.contains(matList.getBatch())){ throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�"); }else { -// if (matList.getAnfme() > orderDetls.get(0).getAnfme()) { -// throw new CoolException("绠卞彿锛�"+orderDetls.get(0).getBatch() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); -// } - 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); } } - String matnr = null; List<WaitPakin> waitPakins = new ArrayList<>(); + String matnrSign = ""; + String brandSign = ""; for (OrderDetl orderDetl:orderDetlList){ - Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); - if (Cools.isEmpty(mat)) { - throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�"); + if (Cools.isEmpty(orderDetl.getMatnr()) || Cools.isEmpty(orderDetl.getBrand())){ + throw new CoolException(orderDetl.getOrderNo() + "鎵�閫夋槑缁嗗瓨鍦ㄦ湭鐭ヨ鏍兼垨鑰呮湭鐭ョ鍨嬶紝璇风淮鎶ゆ暟鎹紒"); } - matnr = mat.getMatnr(); + 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(param.getBoxType()); //鏈ㄧ绫诲瀷 + waitPakin.setBrand(orderDetl.getBrand()); //鏈ㄧ绫诲瀷 waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮� - waitPakin.setOrigin(orderDetl.getOrigin()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃� - waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� + 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.setRollUp(orderDetl.getRollUp()); waitPakin.setZpallet(param.getBarcode()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); @@ -301,7 +319,7 @@ LocTypeDto locTypeDto = new LocTypeDto(); locTypeDto.setLocType1((short)1); - StartupDto dto = commonService.getLocNo(1, 1, 145, matnr,null,null, locTypeDto); + StartupDto dto = commonService.getLocNo(1, 1, 145, matnrSign,null,null, locTypeDto); int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -339,7 +357,6 @@ wrkDetl.setIoTime(wrkMast.getIoTime()); wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); - wrkDetl.setRollUp(waitPakin.getRollUp()); wrkDetl.setZpallet(param.getBarcode()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); @@ -365,7 +382,58 @@ @Override @Transactional - public void trussComb2(PalletizingCompleteParam param, Long userId) { + 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涓虹┖"); @@ -373,39 +441,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 || param.getMatLists().size()>2){ + }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()+"宸插瓨鍦紝璇峰嬁閲嶅鍏ュ簱"); } } - if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0 || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0 @@ -416,40 +510,52 @@ 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.setWeight(matList.getWeight()); //鍑�閲� + waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸 + waitPakin.setPrice(matList.getRollExtent()); //闀垮害 + waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵�� - waitPakin.setAnfme(matList.getAnfme().doubleValue()); // 鏈ㄧ涓摐绠旀暟閲� + waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺 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, matnr,null,null, locTypeDto); + StartupDto dto = commonService.getLocNo(1, 1, 212, matnr,null,null, locTypeDto); int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -470,7 +576,6 @@ wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("Y"); wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷 - wrkMast.setBarcode(param.getBarcode()); // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); @@ -487,7 +592,6 @@ wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); wrkDetl.setZpallet(param.getBarcode()); - wrkDetl.setRollUp(waitPakin.getRollUp()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); } @@ -1059,4 +1163,132 @@ throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } } + + @Override + @Transactional + public void pakoutFhqr(Integer workNo, Integer check) { + // 鑾峰彇宸ヤ綔妗� + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo)); + if (wrkMast == null) { + throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + workNo); + } + + if (wrkMast.getWrkSts() != 20) { + throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佸紓甯革細" + workNo + ",鐘舵�侊細" + wrkMast.getWrkSts()); + } + + if (check == 1) { + // 澶嶆牳纭锛屾洿鏂扮姸鎬佷负15鍑哄簱瀹屾垚鏇存柊 + wrkMast.setWrkSts(14L); + wrkMastService.updateById(wrkMast); + } + + } + + @Override + @Transactional + public R pdckqr(PdckqrParam param) { + WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo()); + if (wrkMast == null) { + throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getWorkNo()); + } + if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) { + throw new CoolException(param.getWorkNo() + "宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�"); + } + + List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(param.getWorkNo()); + List<PdckqrParam.Material> materials = param.getMaterials(); + + boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials); + if (isFullyCancelled) { // 鐩樼偣鐗╂枡纭垚鍔燂紝宸ヤ綔妗h浆鎹� 鐩樼偣鍑哄簱->鐩樼偣鍐嶅叆搴擄紝涓嬪彂鍥炲簱鍛戒护 + // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗� + if (!wrkMastLogService.save(wrkMast.getWrkNo())) { + throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�"); + } + // 鑾峰彇鐩爣绔� + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", wrkMast.getIoType() - 50) + .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 + .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 + StaDesc staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); + } + Date now = new Date(); + // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�) + Integer staNo = staDesc.getCrnStn(); + // 鏇存柊宸ヤ綔妗f暟鎹姸鎬� + wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57 + wrkMast.setWrkSts(14L); // 宸ヤ綔鐘舵��: 14.宸插嚭搴撴湭纭 + wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯 + wrkMast.setStaNo(staNo); // 鐩爣绔� + wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� + wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌� + wrkMast.setModiTime(now); + if (!wrkMastService.updateById(wrkMast)) { + throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); + } + // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴� + LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); + locMast.setLocSts("Q"); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�"); + } + + // 鎺ㄩ�佺粰gwcs鎵ц鍛戒护 + openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo()); + + return R.ok("鐩樼偣纭鎴愬姛"); + + } else { // 鐗╂枡涓嶄竴鑷� + // todo 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶寰呭畾 + + } + + return R.error("鐩樼偣纭寮傚父"); + } + + /** + * 姣旇緝涓や釜闆嗗悎鐨勭被鐨勫睘鎬э紝鐩稿悓鍒欐姷娑堬紝鏈�鍚庡垽鏂袱涓泦鍚堟槸鍚﹀畬鍏ㄦ姷娑� + */ + public boolean compareAndCheckCancellation(List<WrkDetl> list1, List<PdckqrParam.Material> list2) { + if (list1.size() != list2.size()) { + return false; // If lists are not of the same size, cancellation is not possible + } + + List<PdckqrParam.Material> remainingList2 = new ArrayList<>(list2); + + // Compare and cancel out elements + for (WrkDetl p1 : list1) { + boolean cancelled = false; + for (PdckqrParam.Material p2 : remainingList2) { + if (p1.getBatch().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 鍗峰彿鍜岀鍙风浉鍚� + remainingList2.remove(p2); + cancelled = true; + break; + } + } + if (!cancelled) { + return false; // If any element in list1 cannot be cancelled, return false + } + } + + return remainingList2.isEmpty(); // Return true if all elements in list1 were cancelled out + } + + @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