From 3e8b02f468f302763c3792efa3f9164dae3e0874 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期四, 01 九月 2022 17:50:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/erp/task/ErpScheduler.java | 232 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 164 insertions(+), 68 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 2d3a018..a1c7963 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,22 +4,27 @@
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;
import com.zy.common.service.erp.entity.*;
+import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
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.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -31,7 +36,7 @@
*/
@Slf4j
@Component
-public class ErpScheduler {
+public class ErpScheduler extends AbstractHandler<Exception> {
@Autowired
private ErpService erpService;
@@ -47,27 +52,29 @@
private Map<Integer, M_item> itemMap = new HashMap<>();
/**
- * 鍘熸潗鏂�
+ * 鍘熸潗鏂欏叆搴撳崟
*/
-// @Scheduled(cron = "0/3 * * * * ? ")
+ @Scheduled(cron = "0/30 * * * * ? ")
+ @Synchronized
// @PostConstruct
public void inStockExecute(){
-// List<M_item> item = erpService.getItem();
-// for (M_item item1 : item) {
-// itemMap.put(item1.getMitemid(), item1);
-// }
-
+// inStock鐨勮〃澶村拰琛ㄨ韩
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());
-// }
-// }
+ for (InStockDto dto : readyInStock) {
+
+ //鍚屼竴鍗曞彿瀛樺湪鐩稿悓鐗╂枡缂栫爜鏁版嵁锛岃鍗曞彿涓嶄簣澶勭悊
+ 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;
+ }
+ if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getInStockBillEntries())) {
+ continue;
+ }
+ for (InStockBillEntry entry : dto.getInStockBillEntries()) {
MatCode matCode = matCodeService.selectById(entry.getFnumber());
if (null != matCode) {
// 鐢熸垚鍏ュ簱閫氱煡鍗�
@@ -78,32 +85,43 @@
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());
+ waitPakin.setNqty(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());
+ waitPakin.setNqty(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) {
+ log.error("fail", 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 +129,24 @@
/**
- * 鎴愬搧
+ * 鎴愬搧鍏ュ簱鍗�
*/
- @Scheduled(cron = "0/5 * * * * ? ")
+ @Scheduled(cron = "0/20 * * * * ? ")
+ @Synchronized
// @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,27 +157,42 @@
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());
+ waitPakin.setNqty(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());
+ waitPakin.setNqty(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());
}
}
}
}
- @Scheduled(cron = "0/5 * * * * ? ")
+ @Scheduled(cron = "0/30 * * * * ? ")
+ @Synchronized
public void syncMat(){
List<M_item> items = erpService.getItem();
for (M_item item : items) {
@@ -192,39 +224,103 @@
}
/**
- * 鎴愬搧鍑哄簱-鍙戣揣閫氱煡鍗曡〃澶�
+ * 鎴愬搧鍑哄簱 鍙戣揣閫氱煡鍗曡〃澶�,琛ㄦ槑缁�
*/
@Scheduled(cron = "0/15 * * * * ? ")
+ @Synchronized
+ @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){
+ log.info("鍑哄簱閫氱煡鍗曞瓨鍦ㄧ墿鏂欑浉鍚屾暟鎹甗FBillNo={},FInterID={},]", outStockBill.getFBillNo(), outStockBill.getFInterID());
+ 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爜|鐢熶骇鍗曞彿
+ outStockBillEntry.setFAmount(new BigDecimal(0));
+ 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())) {
+ outStockBillEntry.setFAmount(new BigDecimal(0));
+ 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 {
}
- }
- }
- /**
- * 鎴愬搧鍑哄簱-鍙戣揣閫氱煡鍗曡〃浣�
- */
- @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鍚屾澶辫触");
- };
+ 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) {
+// 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