From 15c8f00ab3a1e3d2d96b56bae0ec11efedd60231 Mon Sep 17 00:00:00 2001 From: 18516761980 <4761516tqsxp> Date: 星期三, 29 九月 2021 11:14:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/erp/task/ErpScheduler.java | 212 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 146 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java index c103a4e..cf2464e 100644 --- a/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java +++ b/src/main/java/com/zy/common/service/erp/task/ErpScheduler.java @@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; +import com.core.exception.CoolException; import com.zy.asrs.entity.MatCode; import com.zy.asrs.entity.WaitPakin; import com.zy.asrs.service.MatCodeService; import com.zy.asrs.service.OutStockMainService; import com.zy.asrs.service.OutStockService; import com.zy.asrs.service.WaitPakinService; +import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.utils.VersionUtils; import com.zy.common.service.erp.ErpService; import com.zy.common.service.erp.dto.InStockDto; @@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.Date; @@ -31,7 +34,7 @@ */ @Slf4j @Component -public class ErpScheduler { +public class ErpScheduler extends AbstractHandler<Exception> { @Autowired private ErpService erpService; @@ -47,27 +50,24 @@ private Map<Integer, M_item> itemMap = new HashMap<>(); /** - * 鍘熸潗鏂� + * 鍘熸潗鏂欏叆搴撳崟 */ -// @Scheduled(cron = "0/3 * * * * ? ") + @Scheduled(cron = "0/5 * * * * ? ") // @PostConstruct public void inStockExecute(){ -// List<M_item> item = erpService.getItem(); -// for (M_item item1 : item) { -// itemMap.put(item1.getMitemid(), item1); -// } - List<InStockDto> readyInStock = erpService.getReadyInStock(); for (InStockDto dto : readyInStock) { - for (InStockBillEntry entry : dto.getInStockBillEntries()) { -// if (entry.getFNumber() == null && itemMap.containsKey(entry.getFItemID())) { -// entry.setFNumber(itemMap.get(entry.getFItemID()).getMnumber()); -// boolean b = erpService.updateFnumber(entry.getFItemID(), entry.getFNumber()); -// if (b) { -// System.err.println(entry.getFItemID() + ": " + entry.getFNumber()); -// } -// } + //鍚屼竴鍗曞彿瀛樺湪鐩稿悓鐗╂枡缂栫爜鏁版嵁锛岃鍗曞彿涓嶄簣澶勭悊 + Number fnumberCount = erpService.QueryFnumberInCount(dto.getInStockBill().getFInterID()); + if(fnumberCount.intValue() > 1){ + if (!erpService.haveReadInStock(dto.getInStockBill().getFBillNo(),-1)) { + log.error("鏍囪鍘熸潗鏂欏叆搴撻�氱煡鍗曞凡璇籌nStockBill涓�-1澶辫触[FBillNo={},FInterID={}]", dto.getInStockBill().getFBillNo(),dto.getInStockBill().getFInterID()); + } + continue; + } + + for (InStockBillEntry entry : dto.getInStockBillEntries()) { MatCode matCode = matCodeService.selectById(entry.getFnumber()); if (null != matCode) { // 鐢熸垚鍏ュ簱閫氱煡鍗� @@ -78,32 +78,40 @@ waitPakin.setAppeTime(new Date()); waitPakin.setModiTime(new Date()); VersionUtils.setWaitPakIn(waitPakin, matCode); - waitPakin.setMnemonic(entry.getFSourceBillNo()); // todo:luxiaotao 鍗曟嵁缂栧彿 + waitPakin.setMnemonic(entry.getFOrderBillNo()); // todo:luxiaotao 鐢熶骇鍗曞彿 waitPakin.setSupplier(dto.getInStockBill().getFBillNo()); // todo:luxiaotao 閫氱煡鍗曞彿 +// String Fnumber = (Cools.isEmpty(entry.getFSourceBillNo())) ? matCode.getMatNo() : matCode.getMatNo() + "|" + entry.getFSourceBillNo(); +// waitPakin.setMatnr(Fnumber); //浜у搧浠g爜|鐢熶骇鍗曞彿 +// waitPakin.setBname(matCode.getMatNo()); Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() .eq("supplier", waitPakin.getSupplier()) - .eq("matnr", waitPakin.getMatnr()) - .isNull("zpallet"); + .eq("matnr", waitPakin.getMatnr()); +// .isNull("zpallet"); WaitPakin one = waitPakinService.selectOne(wrapper); try { if (one == null) { waitPakin.setAnfme(entry.getFAuxQty()); if (!waitPakinService.insert(waitPakin)) { - log.error("{}鍘熸潗鏂欏叆搴撻�氱煡鍗曠殑{}鐗╂枡鏁版嵁澶勭悊澶辫触", waitPakin.getSupplier(), waitPakin.getMatnr()); + log.error("鎻愬彇鍘熸潗鏂欏叆搴撻�氱煡鍗旾nStockBillEntry澶辫触[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } else { + log.info("鎻愬彇鍘熸潗鏂欏叆搴撻�氱煡鍗旾nStockBillEntry鎴愬姛[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } + } else { + waitPakin.setAnfme(entry.getFAuxQty()); + if (!waitPakinService.update(waitPakin, wrapper)) { + log.error("鏇存柊鍘熸潗鏂欏叆搴撻�氱煡鍗旾nStockBillEntry澶辫触[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } else { + log.info("鏇存柊鍘熸潗鏂欏叆搴撻�氱煡鍗旾nStockBillEntry鎴愬姛[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); } } -// else { -// waitPakin.setAnfme(one.getAnfme() + entry.getFAuxQty()); -// waitPakinService.update(waitPakin, wrapper); -// } } catch (Exception e) { e.printStackTrace(); System.out.println(JSON.toJSON(waitPakin)); } } } - if (!erpService.haveReadInStock(dto.getInStockBill().getFBillNo())) { - log.error("{}鍘熸潗鏂欏叆搴撻�氱煡鍗曞凡璇诲け璐�", dto.getInStockBill().getFBillNo()); + if (!erpService.haveReadInStock(dto.getInStockBill().getFBillNo(),1)) { + log.error("鏍囪鍘熸潗鏂欏叆搴撻�氱煡鍗曞凡璇籌nStockBill澶辫触[FBillNo={}]", dto.getInStockBill().getFBillNo()); } } @@ -111,25 +119,23 @@ /** - * 鎴愬搧 + * 鎴愬搧鍏ュ簱鍗� */ @Scheduled(cron = "0/5 * * * * ? ") // @PostConstruct public void inCPICMOExecute(){ -// List<M_item> item = erpService.getItem(); -// for (M_item item1 : item) { -// itemMap.put(item1.getMitemid(), item1); -// } - List<CPICMO> cpicmos = erpService.getReadyCPICMO(); for (CPICMO cpicmo : cpicmos) { -// if (Cools.isEmpty(cpicmo.getFnumber()) && itemMap.containsKey(cpicmo.getFItemID())) { -// cpicmo.setFnumber(itemMap.get(cpicmo.getFItemID()).getMnumber()); -// boolean b = erpService.updateCFnumber(cpicmo.getFItemID(), cpicmo.getFnumber()); -// if (b) { -// System.err.println(cpicmo.getFItemID() + ": " + cpicmo.getFnumber()); -// } -// } + + //鍚屼竴鍗曞彿瀛樺湪鐩稿悓鐗╂枡缂栫爜鏁版嵁锛岃鍗曞彿涓嶄簣澶勭悊 + Number fnumberCount = erpService.QueryFnumberCPICMOCount(cpicmo.getFInterID()); + if(fnumberCount.intValue() > 1){ + if (!erpService.haveReadCPICMO(cpicmo.getFInterID(),-1)) { + log.error("鏍囪鎴愬搧鍏ュ簱閫氱煡鍗曞凡璇籆PICMO涓�-1澶辫触[Fnumber={},FInterID={}]", cpicmo.getFnumber(),cpicmo.getFInterID()); + } + continue; + } + MatCode matCode = matCodeService.selectById(cpicmo.getFnumber()); if (null != matCode) { // 鐢熸垚鍏ュ簱閫氱煡鍗� @@ -140,21 +146,33 @@ waitPakin.setAppeTime(new Date()); waitPakin.setModiTime(new Date()); VersionUtils.setWaitPakIn(waitPakin, matCode); - waitPakin.setMnemonic(cpicmo.getFSourceBillNo()); // todo:luxiaotao 鍗曟嵁缂栧彿 + waitPakin.setMnemonic(cpicmo.getFSourceBillNo()); // todo:luxiaotao 鐢熶骇鍗曞彿 waitPakin.setSupplier(cpicmo.getFBillNo()); // todo:luxiaotao 閫氱煡鍗曞彿 +// String Fnumber = (Cools.isEmpty(cpicmo.getFSourceBillNo())) ? matCode.getMatNo() : matCode.getMatNo() + "|" + cpicmo.getFSourceBillNo(); +// waitPakin.setMatnr(Fnumber); //浜у搧浠g爜|鐢熶骇鍗曞彿 +// waitPakin.setBname(matCode.getMatNo()); Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() .eq("supplier", waitPakin.getSupplier()) - .eq("matnr", waitPakin.getMatnr()) - .isNull("zpallet"); + .eq("matnr", waitPakin.getMatnr()); +// .isNull("zpallet"); WaitPakin one = waitPakinService.selectOne(wrapper); if (one == null) { waitPakin.setAnfme(cpicmo.getFAuxQty()); if (!waitPakinService.insert(waitPakin)) { - log.error("{}鎴愬搧鍏ュ簱閫氱煡鍗曠殑{}鐗╂枡鏁版嵁澶勭悊澶辫触", waitPakin.getSupplier(), waitPakin.getMatnr()); + log.error("鎻愬彇鎴愬搧鍏ュ簱閫氱煡鍗旵PICMO澶辫触[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } else { + log.info("鎻愬彇鎴愬搧鍏ュ簱閫氱煡鍗旵PICMO鎴愬姛[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } + } else { + waitPakin.setAnfme(cpicmo.getFAuxQty()); + if (!waitPakinService.update(waitPakin, wrapper)) { + log.error("鍚屾鏇存柊鎴愬搧鍏ュ簱閫氱煡鍗旵PICMO澶辫触[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); + } else { + log.info("鍚屾鏇存柊鎴愬搧鍏ュ簱閫氱煡鍗旵PICMO澶辫触[FBillNo={},Fnumber={}]", waitPakin.getSupplier(), waitPakin.getMatnr()); } } - if (!erpService.haveReadCPICMO(cpicmo.getFBillNo())) { - log.error("{}鎴愬搧鍏ュ簱閫氱煡鍗曞凡璇诲け璐�", cpicmo.getFBillNo()); + if (!erpService.haveReadCPICMO(cpicmo.getFInterID(),1)) { + log.error("鏍囪鎴愬搧鍏ュ簱閫氱煡鍗曞凡璇籆PICMO澶辫触[FBillNo={}]", cpicmo.getFBillNo()); } } } @@ -192,36 +210,98 @@ } /** - * 鎴愬搧鍑哄簱-鍙戣揣閫氱煡鍗曡〃澶� + * 鎴愬搧鍑哄簱 鍙戣揣閫氱煡鍗曡〃澶�,琛ㄦ槑缁� */ @Scheduled(cron = "0/15 * * * * ? ") + @Transactional public void syncOutStock(){ - List<OutStockBill> result = erpService.syncOutStock(); - for (Integer i = 0; i < result.size(); i++) { - OutStockBill main = outStockMainService.selectOne(new EntityWrapper<OutStockBill>().eq("FBrNo", result.get(i).getFBrNo()).and().eq("FInterID", result.get(i).getFInterID())); + List<OutStockBill> outStockBills = erpService.syncOutStock(); + for (Integer i = 0; i < outStockBills.size(); i++) { + OutStockBill outStockBill = outStockBills.get(i); + + //鍚屼竴鍗曞彿瀛樺湪鐩稿悓鐗╂枡缂栫爜鏁版嵁锛岃鍗曞彿涓嶄簣澶勭悊 + Number fnumberCount = erpService.QueryFnumberOutCount(outStockBill.getFInterID()); + if(fnumberCount.intValue() > 1){ + if (!erpService.haveReadOutBill(outStockBill.getFBillNo(),outStockBill.getFInterID(),-1)) { + log.error("鏇存柊鍑哄簱閫氱煡鍗曡鍙栫姸鎬佷负-1澶辫触[FBrNo={},FInterID={}]", outStockBill.getFBrNo(),outStockBill.getFInterID()); + } + continue; + } + + OutStockBill main = outStockMainService.selectOne(new EntityWrapper<OutStockBill>().eq("FBillNo",outStockBill.getFBillNo()).and().eq("FInterID", outStockBill.getFInterID())); if (null == main) { - if (!outStockMainService.insert(result.get(i))) { - log.info("鍑哄簱閫氱煡涓昏〃OutStockBill鍚屾澶辫触"); + outStockBill.setFflag_rw(1); + if (!outStockMainService.insert(outStockBill)) { + log.info("鍚屾鍑哄簱閫氱煡涓昏〃OutStockBill澶辫触"); + exceptionHandle("鍚屾鍑哄簱閫氱煡涓昏〃OutStockBill澶辫触[FBillNo={0},FInterID={1}]",outStockBill.getFBillNo(),outStockBill.getFInterID()); }; + List<OutStockBillEntry> outStockBillEntries = erpService.syncOutStockDetail(outStockBill.getFInterID()); + for (Integer j = 0; j < outStockBillEntries.size(); j++) { + OutStockBillEntry outStockBillEntry = outStockBillEntries.get(j); + Wrapper<OutStockBillEntry> wrapper = new EntityWrapper<OutStockBillEntry>().eq("FInterID", outStockBillEntry.getFInterID()). + eq("FEntryID", outStockBillEntry.getFEntryID()).eq("FBrNo",outStockBillEntry.getFBrNo()); + OutStockBillEntry one = outStockService.selectOne(wrapper); + if (null == one) { +// String Fnumber = (Cools.isEmpty(outStockBillEntry.getFSourceBillNo())) ? outStockBillEntry.getFnumber() : outStockBillEntry.getFnumber()+"|"+outStockBillEntry.getFSourceBillNo(); +// outStockBillEntry.setFnumber(Fnumber); //浜у搧浠g爜|鐢熶骇鍗曞彿 + if (!outStockService.insert(outStockBillEntry)) { + log.info("鎻愬彇鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry澶辫触[FBrNo={},FInterID={},FEntryID={}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + exceptionHandle("鎻愬彇鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry澶辫触[FBrNo={0},FInterID={1},FEntryID={2}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + } else { + log.info("鎻愬彇鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry鎴愬姛[FBrNo={},FInterID={},FEntryID={}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + } + } else { + // 鏁伴噺鏈夊彉鍖栬繘琛屾洿鏂� + if (Double.doubleToLongBits(one.getFAuxQty().doubleValue()) != Double.doubleToLongBits(outStockBillEntry.getFAuxQty().doubleValue())) { + if (!outStockService.update(outStockBillEntry, wrapper)) { + log.info("鍚屾鏇存柊閫氱煡鏄庣粏琛∣utStockBillEntry澶辫触[FBrNo={},FInterID={},FEntryID={}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + exceptionHandle("鍚屾鏇存柊閫氱煡鏄庣粏琛∣utStockBillEntry澶辫触[FBrNo={0},FInterID={1},FEntryID={2}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + } else { + log.info("鍚屾鏇存柊閫氱煡鏄庣粏琛∣utStockBillEntry鎴愬姛[FBrNo={},FInterID={},FEntryID={}]",outStockBillEntry.getFBrNo(), + outStockBillEntry.getFInterID(),outStockBillEntry.getFEntryID()); + } + } + } + } + } else { + + } + + if (!erpService.haveReadOutBill(outStockBill.getFBillNo(),outStockBill.getFInterID(),1)) { + log.error("鏇存柊鍑哄簱閫氱煡鍗曡鍙栫姸鎬佸け璐FBrNo={},FInterID={}]", outStockBill.getFBrNo(),outStockBill.getFInterID()); } } } - /** - * 鎴愬搧鍑哄簱-鍙戣揣閫氱煡鍗曡〃浣� - */ - @Scheduled(cron = "0/15 * * * * ? ") - public void syncOutStockDetail(){ - List<OutStockBillEntry> result = erpService.syncOutStockDetail(); - for (Integer i = 0; i < result.size(); i++) { - OutStockBillEntry main = outStockService.selectOne(new EntityWrapper<OutStockBillEntry>().eq("FInterID", result.get(i).getFInterID()).and().eq("FEntryID", result.get(i).getFEntryID())); - if (null == main) { - if (!outStockService.insert(result.get(i))) { - log.info("鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry鍚屾澶辫触"); - }; - } - } - } +// /** +// * 鎴愬搧鍑哄簱 鍙戣揣閫氱煡鍗曡〃浣� +// */ +// @Scheduled(cron = "0/15 * * * * ? ") +// public void syncOutStockDetail(){ +// List<OutStockBillEntry> result = erpService.syncOutStockDetail(); +// for (Integer i = 0; i < result.size(); i++) { +// OutStockBillEntry main = outStockService.selectOne(new EntityWrapper<OutStockBillEntry>().eq("FInterID", result.get(i).getFInterID()).and().eq("FEntryID", result.get(i).getFEntryID())); +// if (null == main) { +// OutStockBillEntry outStockBillEntry = result.get(i); +// outStockBillEntry.setFnumber(outStockBillEntry.getFnumber()+"|"+outStockBillEntry.getFSourceBillNo()); //浜у搧浠g爜|鐢熶骇鍗曞彿 +// if (!outStockService.insert(outStockBillEntry)) { +// log.info("鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry鍚屾澶辫触"); +// }; +// } else { +// // 鏁伴噺鏈夊彉鍖栬繘琛屾洿鏂� +// if (Double.doubleToLongBits(main.getFAuxQty().doubleValue()) != Double.doubleToLongBits(result.get(i).getFAuxQty().doubleValue())) { +// if (!outStockService.update(result.get(i), new EntityWrapper<OutStockBillEntry>().eq("FInterID", result.get(i).getFInterID()).and().eq("FEntryID", result.get(i).getFEntryID()))) { +// log.info("鍑哄簱閫氱煡鏄庣粏琛∣utStockBillEntry鍚屾澶辫触"); +// }; +// } +// } +// } +// } /** * 鍘熸潗鏂欏嚭搴� -- Gitblit v1.9.1