From f6796dda5fb7e269482f0cc92a898fe7ffc203d4 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 25 三月 2024 12:56:58 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 709 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 558 insertions(+), 151 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index d43ee82..c941a80 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -1,12 +1,25 @@ package com.zy.asrs.task.handler; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.exception.CoolException; import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.CombParam; +import com.zy.asrs.mapper.ReportQueryMapper; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import com.zy.asrs.utils.PostMesDataUtils; +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 org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.Date; import java.util.List; @@ -14,9 +27,10 @@ /** * Created by vincent on 2020/7/4 */ +@Slf4j @Service @Transactional -public class WorkMastHandler extends AbstractHandler { +public class WorkMastHandler extends AbstractHandler<String> { @Autowired private WrkMastService wrkMastService; @@ -27,180 +41,573 @@ @Autowired private LocDetlService locDetlService; @Autowired + private TestMastService testMastService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired private WaitPakinService waitPakinService; + @Autowired + private ApiLogService apiLogService; + @Value("${mes.url}") + private String mesUrl; - public void start() { - List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); - if (wrkMasts.isEmpty()) { - return; + @Value("${mes.inPath}") + private String inpath; + + @Autowired + private PackQualifiedService packQualifiedService; + @Autowired + private ReportQueryMapper reportQueryMapper; + + public ReturnT<String> start(WrkMast wrkMast) { + // 4.鍏ュ簱瀹屾垚 + if (wrkMast.getWrkSts() == 4) { + return doIn(wrkMast); + // 14.鍑哄簱瀹屾垚 + } else if (wrkMast.getWrkSts() == 14) { + return doOut(wrkMast); } - for (WrkMast wrkMast : wrkMasts) { - // 4.鍏ュ簱瀹屾垚 - if (wrkMast.getWrkSts() == 4) { - doIn(wrkMast); - // 14.鍑哄簱瀹屾垚 - } else if (wrkMast.getWrkSts() == 14) { - doOut(wrkMast); - } - } + return SUCCESS; } - private void doIn(WrkMast wrkMast){ + private ReturnT<String> doIn(WrkMast wrkMast){ Date now = new Date(); LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); - if (null == locMast) { - exceptionHandle(""); // todo - return; - } - switch (wrkMast.getIoType()) { - // 绌烘澘鍏ュ簱 - case 10: - // 淇敼搴撲綅鐘舵��=D - if (locMast.getLocType().equals("S") || locMast.getLocType().equals("Q")) { - locMast.setLocType("D"); - locMast.setIoTime(now); - locMast.setModiTime(now); - if (!locMastService.updateById(locMast)) { - exceptionHandle(""); // todo - } - } - break; - // 鍏ㄦ澘鍏ュ簱 - case 1: - // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏 - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); - if (!locDetls.isEmpty()) { - locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); - } - // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� - List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); - if (wrkDetls.isEmpty()) { - exceptionHandle(""); // todo - } - // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗� - for (WrkDetl wrkDetl : wrkDetls) { - LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); - if (null != locDetl) { - boolean res = locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr()); - if (!res) { - exceptionHandle(""); // todo + try { + if (null == locMast) { +// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("宸ヤ綔妗workNo=" + wrkMast.getWrkNo() + "]搴撲綅鍙烽敊璇痆locNo=" + wrkMast.getLocNo() + "]"); + } + assert locMast != null; + switch (wrkMast.getIoType()) { + // 绌烘澘鍏ュ簱 + case 10: + // 淇敼搴撲綅鐘舵��=D + if (locMast.getLocSts().equals("S") || locMast.getLocSts().equals("Q")) { + if (!Cools.isEmpty(wrkMast.getBarcode())) { + locMast.setBarcode(wrkMast.getBarcode()); } - } else { - locDetl = new LocDetl( - wrkMast.getLocNo(), // 搴撲綅鍙� - wrkDetl.getMatnr(), // 鐗╂枡鍙� - null, // 浠撳簱鍙� - null, // 杞偍璇锋眰缂栧彿 - null, // 琛岄」鐩� - null, // 鐗╂枡鏍囩ID - wrkDetl.getMaktx(), // 鐗╂枡鎻忚堪 - null, // 宸ュ巶 - wrkDetl.getAnfme(), // 鏁伴噺 - wrkDetl.getAltme(), // 鍗曚綅 - wrkDetl.getZpallet(), // 鎵樼洏鏉$爜 - null, // 鐢ㄦ埛ID - null, // 澶囨敞 - null, // 淇敼浜哄憳 - now, // 淇敼鏃堕棿 - null, // 鍒涘缓鑰� - now // 娣诲姞鏃堕棿 - ); - if (!locDetlService.insert(locDetl)) { - exceptionHandle(""); // todo + locMast.setLocSts("D"); + locMast.setIoTime(now); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } - // 鏇存柊鍏ュ簱閫氱煡妗� status ===>> Y - WaitPakin setParam = new WaitPakin(); - setParam.setStatus("Y"); - boolean updateRes = waitPakinService.update(setParam - , new EntityWrapper<WaitPakin>().eq("barcode", wrkDetl.getZpallet()) - .eq("matnr", wrkDetl.getMatnr()) - .eq("anfme", wrkDetl.getAnfme())); - if (!updateRes) { - exceptionHandle(""); // todo + break; + // 鍏ㄦ澘鍏ュ簱 + case 1: + // 娓呴櫎鎵�灞炲簱浣嶄箣鍓嶇殑搴撳瓨鏄庣粏 + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); + if (!locDetls.isEmpty()) { + locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); } - } - // 淇敼搴撲綅鐘舵�� S ====>> F - if (locMast.getLocType().equals("S")) { - locMast.setLocType("F"); - locMast.setBarcode(wrkMast.getBarcode()); - locMast.setIoTime(now); - locMast.setModiTime(now); - if (!locMastService.updateById(locMast)) { - exceptionHandle(""); // todo + // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkDetls.isEmpty()) { +// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪锛沎workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d笉瀛樺湪; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } - } - break; - // 鎷f枡鍏ュ簱 - case 53: - // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� - List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); - if (wrkDetls53.isEmpty()) { - exceptionHandle(""); // todo - } - for (WrkDetl wrkDetl:wrkDetls53) { - // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏋滃伐浣滄槑缁嗘暟閲忎负0鏃讹紝鍒犻櫎搴撳瓨鏄庣粏 - LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); - if (null != locDetl) { - if (wrkDetl.getAnfme() == 0) { - if (!locDetlService.delete(new EntityWrapper<>(locDetl))) { - exceptionHandle(""); // todo + // 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗� + for (WrkDetl wrkDetl : wrkDetls) { + + LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + if (null != locDetl) { + if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { +// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } else { - if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr())) { - exceptionHandle(""); // todo + locDetl = new LocDetl(); + locDetl.sync(wrkDetl); + locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙� + locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺 + locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜 + locDetl.setModiTime(now); + locDetl.setAppeTime(now); + locDetl.setDeadWarn(wrkDetl.getDeadWarn()); + if (!locDetlService.insert(locDetl)) { +// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } - // todo:luxiaotao 3)淇敼鍑哄簱閫氱煡妗� status ==> Y + +// // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 +// OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); +// try { +// if(!Cools.isEmpty(orderDetl)){ +// if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), +// wrkDetl.getBatch(),wrkDetl.getAnfme())){ +//// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", +//// wrkMast.getWrkNo(), wrkMast.getLocNo()); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); +// } +// } +// } catch (Exception ignore){} + } - } - // 淇敼搴撲綅鐘舵�� S ====>> F - if (locMast.getLocType().equals("Q")) { - locMast.setLocType("F"); + // 淇敼搴撲綅鐘舵�� S ====>> F + if (locMast.getLocSts().equals("S")) { + locMast.setLocSts("F"); + locMast.setBarcode(wrkMast.getBarcode()); + locMast.setIoTime(now); + locMast.setModiTime(now); + locMast.setFireStatus(0); + //鍏ユ祴璇曞簱浣嶆椂缁欏簱浣嶆祴璇曠姸鎬佷负1寰呮祴 + if(!Cools.isEmpty(locMast.getChannel())){ + locMast.setPackStatus(1);//寰呮祴 + } + if (locMast.getCrnNo()==1){ + if (locMast.getLocType1()==1){ + locMast.setPackStatus(1); + }else { + locMast.setPackStatus(0); + } + }else { + WrkDetl wrkDetl1 = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("zpallet",locMast.getBarcode())); + locMast.setPackStatus(5); + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("barcode",wrkDetl1.getMatnr()) + .eq("status",4) + ); + if (Cools.isEmpty(testMast)){ + testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("barcode",wrkDetl1.getMatnr()) + .eq("status",5) + ); + } + if (Cools.isEmpty(testMast)){ + throw new CoolException("鏇存敼娴嬭瘯鐘舵�佸け璐�,鏌ヨ娴嬭瘯妗f澶辫触"); + } + testMast.setStatus(5); + testMast.setModiTime(new Date()); + if (!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("barcode",wrkDetl1.getMatnr()).eq("status",4))){ + throw new CoolException("鏇存敼娴嬭瘯鐘舵�佸け璐�"); + } + } + //鍏ュ簱鏍囪 + packQualifiedService.insertPackQualified(true,new Date(),wrkDetls.get(0).getMatnr()); + //2.鍏ュ簱瀹屾垚涓婃姤 + CombParam combParam = new CombParam(); + combParam.setPackNo(wrkDetls.get(0).getMatnr()); + combParam.setLocNo(wrkMast.getLocNo()); + combParam.setBarcode(wrkMast.getBarcode()); + if (locMast.getCrnNo()==1){ + combParam.setPackSts(0); + combParam.setStepSts(2); + }else{ + combParam.setPackSts(1); + combParam.setStepSts(5); + } + + combParam.setRequestTime(DateUtils.convert(now)); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + break; + // 鎷f枡鍏ュ簱 + case 53: + // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� + List<WrkDetl> wrkDetls53 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkDetls53.isEmpty()) { +// exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + for (WrkDetl wrkDetl : wrkDetls53) { + + LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + if (null != locDetl) { + if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { +// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + + // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 + OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + try { + if(!Cools.isEmpty(orderDetl)){ + if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), + wrkDetl.getBatch(),wrkDetl.getAnfme())){ +// exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", +// wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + } catch (Exception ignore){} + + } + // 淇敼搴撲綅鐘舵�� Q ====>> F + if (locMast.getLocSts().equals("Q")) { + locMast.setLocSts("F"); + locMast.setBarcode(wrkMast.getBarcode()); + locMast.setIoTime(now); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + break; + // 骞舵澘鍏ュ簱 + case 54: + // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� + List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkDetls54.isEmpty()) { +// exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + // 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧� + for (WrkDetl wrkDetl:wrkDetls54) { + + LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); + if (null != locDetl) { + if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { +// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } else { + locDetl = new LocDetl(); + locDetl.sync(wrkDetl); + locDetl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙� + locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺 + locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜 + locDetl.setModiTime(now); + locDetl.setAppeTime(now); + if (!locDetlService.insert(locDetl)) { +// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + } + // 淇敼搴撲綅鐘舵�� Q ====>> F + if (locMast.getLocSts().equals("Q")) { + locMast.setLocSts("F"); + locMast.setBarcode(wrkMast.getBarcode()); + locMast.setIoTime(now); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + break; + // 鐩樼偣鍏ュ簱 + case 57: + // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� + List<WrkDetl> wrkDetls57 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkDetls57.isEmpty()) { +// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + // 淇敼搴撲綅鐘舵�� Q ====>> F + if (locMast.getLocSts().equals("Q")) { + locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D"); + locMast.setBarcode(wrkMast.getBarcode()); + locMast.setIoTime(now); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + break; + // 搴撲綅绉昏浆 + case 11: + // 榛樿鐩爣搴撲綅鏄┖鏉� + String locSts = "D"; + // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞� + if (wrkMast.getEmptyMk().equals("N")) { + locSts = "F"; + // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣� + if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) { +// exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + // 淇敼婧愬簱浣嶇姸鎬� ==> O + LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); + Integer packStatus =sourceLoc.getPackStatus(); + if (null != sourceLoc) { + sourceLoc.setBarcode(""); + sourceLoc.setLocSts("O"); + sourceLoc.setModiTime(now); + sourceLoc.setIoTime(now); + sourceLoc.setPackStatus(0); + if (!locMastService.updateById(sourceLoc)) { +// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } + // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts + locMast.setLocSts(locSts); locMast.setBarcode(wrkMast.getBarcode()); locMast.setIoTime(now); locMast.setModiTime(now); - if (!locMastService.updateById(locMast)) { - exceptionHandle(""); // todo + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); + + + boolean sign =false; + if (locMast.getLocType1().equals(sourceLoc.getLocType1())){ + locMast.setPackStatus(packStatus); + + //寰呮祴搴撲綅杞祴璇曞簱浣� + }else if (locMast.getLocType1().equals((short)1) && sourceLoc.getLocType1().equals((short)3)){ + locMast.setPackStatus(1); + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no",sourceLoc.getLocNo()) + .eq("user_id",locMast.getBarcode()) + .eq("barcode",locDetl.getMatnr()) + ); + if(!Cools.isEmpty(testMast)){ + testMast.setChannel(locMast.getChannel()); + testMast.setLocNo(wrkMast.getLocNo()); + testMast.setModiTime(new Date()); + testMast.setBarcode(locDetl.getMatnr()); + if (!testMastService.update(testMast,new EntityWrapper<TestMast>() + .eq("loc_no",sourceLoc.getLocNo()) + .eq("user_id",locMast.getBarcode()) + .eq("barcode",locDetl.getMatnr()))){ + throw new CoolException("鏇存敼娴嬭瘯鐘舵�佸け璐�"); + } + }else { + throw new CoolException("寰呮祴搴撲綅鏃犵墿"); + } + }else { + //娴嬭瘯搴撲綅杞潤缃簱浣嶅拰NG搴撲綅 + if (locMast.getLocType1().equals((short)4)){ + locMast.setPackStatus(4); //4:NG + //鍏ュ簱鏍囪 + packQualifiedService.insertPackQualified(true,new Date(),locDetl.getMatnr()); + //鍑哄簱鏍囪 + packQualifiedService.insertPackQualified(false,new Date(),locDetl.getMatnr()); + }else { + locMast.setPackStatus(5); //5:闈欑疆涓� + //鍏ュ簱鏍囪 + packQualifiedService.insertPackQualified(true,new Date(),locDetl.getMatnr()); + //鍑哄簱鏍囪 + packQualifiedService.insertPackQualified(false,new Date(),locDetl.getMatnr()); + } + sign=true; + TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("loc_no",sourceLoc.getLocNo()) + .eq("barcode",locDetl.getMatnr()) + .eq("status",4) + ); + testMast.setStatus(5); + testMast.setLocNo(locMast.getLocNo()); + testMast.setModiTime(new Date()); + if (!testMastService.update(testMast,new EntityWrapper<TestMast>() + .eq("loc_no",sourceLoc.getLocNo()) + .eq("barcode",locDetl.getMatnr()) + .eq("status",4))){ + throw new CoolException("鏇存敼娴嬭瘯鐘舵�佸け璐�"); + } + } - } - break; - case 54: - break; - case 57: - break; - case 11: - break; - default: - break; - } - } + if (!locMastService.updateById(locMast)) { +// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } - private void doOut(WrkMast wrkMast){ - - } - - - - - public static void main(String[] args) { - for (int i = 0;i<10;i++) { - - try { - - System.out.println("====" + i); - if (i == 5){ - throw new Exception("dsa"); - } - System.out.println("----" + i); - - } catch (Exception e) { - e.printStackTrace(); + if (locMast.getCrnNo()==1 && sign){ + //7.娴嬭瘯搴撲綅杞潤缃簱浣嶅嚭搴撳畬鎴愪笂鎶� + CombParam combParam = new CombParam(); + combParam.setPackNo(locDetl.getMatnr()); + combParam.setLocNo(wrkMast.getSourceLocNo()); + combParam.setStepSts(7); + if (locMast.getPackStatus()==4){ + combParam.setPackSts(2); + }else if (locMast.getPackStatus()==5){ + combParam.setPackSts(1); + } + combParam.setRequestTime(DateUtils.convert(now)); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + //5.娴嬭瘯搴撲綅杞潤缃簱浣嶅叆搴撳畬鎴愪笂鎶� + combParam.setPackNo(locDetl.getMatnr()); + combParam.setLocNo(wrkMast.getLocNo()); + if (locMast.getPackStatus()==4){ + combParam.setPackSts(2); + combParam.setStepSts(5); + }else if (locMast.getPackStatus()==5){ + combParam.setPackSts(1); + combParam.setStepSts(8); + }else { + combParam.setPackSts(0); + } + combParam.setRequestTime(DateUtils.convert(now)); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + } + break; + default: + break; } - - - + // 淇敼宸ヤ綔涓绘。鐘舵�� + wrkMast.setWrkSts(5L); + wrkMast.setModiTime(now); + if (!wrkMastService.updateById(wrkMast)) { +// exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + } catch (Exception e) { + log.error("fail", e); + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); } + return SUCCESS; + } + + private ReturnT<String> doOut(WrkMast wrkMast){ + Date now = new Date(); + LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); + try { + if (null == locMast) { +// exceptionHandle("宸ヤ綔妗workNo={0}]搴撲綅鍙烽敊璇痆locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("宸ヤ綔妗e簱浣嶅彿閿欒; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); + } + assert locMast != null; + switch (wrkMast.getIoType()) { + // 鍏ㄦ澘鍑哄簱 + case 101: +// // 鍑哄簱纭淇″彿浣� +// if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) { +// return SUCCESS; +// } + // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗� + List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkDetls101.isEmpty()) { +// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } +// for (WrkDetl wrkDetl : wrkDetls101) { +// // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 +// OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); +// try { +// if(!Cools.isEmpty(orderDetl)){ +// if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), +// wrkDetl.getBatch(),wrkDetl.getAnfme())){ +//// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", +//// wrkMast.getWrkNo(), wrkMast.getLocNo()); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); +// } +// } +// } catch (Exception ignore){} +// } + // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁� + if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { +// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + // 淇敼婧愬簱浣嶇姸鎬� R ===>> O + if (locMast.getLocSts().equals("R")) { + locMast.setLocSts("O"); + locMast.setBarcode(""); + locMast.setModiTime(now); + locMast.setIoTime(now); + locMast.setPackStatus(0); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + }else{ + //鍑哄簱鏍囪 + packQualifiedService.insertPackQualified(false,new Date(),wrkDetls101.get(0).getMatnr()); + //2.鍑哄簱瀹屾垚涓婃姤 + CombParam combParam = new CombParam(); + combParam.setPackNo(wrkDetls101.get(0).getMatnr()); + combParam.setLocNo(wrkMast.getLocNo()); + combParam.setBarcode(wrkMast.getBarcode()); + //鐩爣绔�206鍑哄簱 + if(wrkMast.getStaNo()==206){ + combParam.setPackSts(1);//OK + combParam.setStepSts(7);//娴嬭瘯搴撳嚭搴撳畬鎴� + }else if(wrkMast.getStaNo()==204){//NG 鍑哄簱 + //NG鍑哄簱淇敼娴嬭瘯妗g殑鐘舵�佷负5.宸茬Щ搴� + TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>() + .eq("user_id",wrkMast.getBarcode()) + .eq("barcode",wrkDetls101.get(0).getMatnr())); + combParam.setPackSts(2);//NG + combParam.setStepSts(8);//NG鍑哄簱瀹屾垚 + testMast.setStatus(5); + if(!testMastService.update(testMast,new EntityWrapper<TestMast>() + .eq("user_id",wrkMast.getBarcode()) + .eq("barcode",wrkDetls101.get(0).getMatnr()))){ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼娴嬭瘯琛ㄧ姸鎬佷负5澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + }else if(wrkMast.getStaNo()==103){//鐩爣绔�103鍑哄簱 + combParam.setPackSts(1);//OK + combParam.setStepSts(6);//闈欑疆搴撳嚭搴撳畬鎴� + } + combParam.setRequestTime(DateUtils.convert(now)); + new PostMesDataUtils().postMesData("MES绯荤粺",mesUrl,inpath,combParam); + } + } + break; + // 绌烘澘鍑哄簱 + case 110: + // 淇敼搴撲綅鐘舵�� R ===>> O + if (locMast.getLocSts().equals("R")) { + locMast.setLocSts("O"); + locMast.setBarcode(""); + locMast.setModiTime(now); + locMast.setIoTime(now); + locMast.setPackStatus(0); + if (!locMastService.updateById(locMast)) { +// exceptionHandle("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("绌烘澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + } + break; + default: + break; + } + // 淇敼宸ヤ綔涓绘。鐘舵�� + wrkMast.setWrkSts(15L); + wrkMast.setModiTime(now); + if (!wrkMastService.updateById(wrkMast)) { +// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); + } + } catch (Exception e) { + log.error("fail", e); + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } + return SUCCESS; } } -- Gitblit v1.9.1