From 48db618606f0f0cafd1ce795f8bf26a0bcec2581 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 20 七月 2024 07:56:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/xgmFlasrs' into xgmFlasrs --- src/main/java/com/zy/third/lk/task/LKInTBScheduler.java | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 240 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java b/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java new file mode 100644 index 0000000..a7de595 --- /dev/null +++ b/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java @@ -0,0 +1,240 @@ +package com.zy.third.lk.task; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.exception.CoolException; +import com.zy.asrs.entity.DocType; +import com.zy.asrs.entity.Mat; +import com.zy.asrs.entity.Order; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.service.DocTypeService; +import com.zy.asrs.service.MatService; +import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.OrderService; +import com.zy.common.service.erp.ErpSqlServer; +import com.zy.third.lk.entity.*; +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 java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 鍏ュ簱鏇存柊瀹屾垚鍥炴姤 + */ +@Slf4j +@Component +public class LKInTBScheduler { + + @Autowired + private MatService matService; + + @Autowired + private OrderService orderService; + + @Autowired + private OrderDetlService orderDetlService; + + @Autowired + private DocTypeService docTypeService; + + @Autowired + private ErpSqlServer erpSqlServer; + + @Transactional(rollbackFor = Throwable.class) + @Scheduled(cron = "${erp.refreshtime}") + public void pakinOrderComplete() { + log.info("寮�濮嬪叆搴撴洿鏂板畬鎴愬洖鎶�"); + // 鎵�鏈夎鍗� + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); + DocType docType; + for (Order order : orders) { + System.out.println(order); + docType = docTypeService.selectById(order.getDocType()); + if (docType == null) { + log.error("璇ヨ鍗曠被鍨嬩笉瀛樺湪:" + order.getDocType()); + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + } + List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + if (docType.getPakin() == 1) { + //鍏ュ簱鍗� + for (OrderDetl orderDetl : orderDetls) { + insertInDet(orderDetl); + } + insertInHed(order); + } else { + //鍑哄簱鍗� + for (OrderDetl orderDetl : orderDetls) { + insertOutDet(orderDetl); + } + insertOutHed(order); + } + // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶� + if (!orderService.updateSettle(order.getId(), 6L, null)) { + throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); + } + } + } + + + /** + * 灏嗗叆搴撳崟鐨勪俊鎭彃鍏ュ埌ERP琛� + * + * @param orderDetl + * @return + */ + @Transactional(rollbackFor = Throwable.class) + public boolean insertInDet(OrderDetl orderDetl) { + String sqlInDetTb = "select * from lk_InDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " + + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'"; + List<InDetTB> inDets = erpSqlServer.select(sqlInDetTb, InDetTB.class); + String sqlInDetTbBak = "select * from lk_InDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " + + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'"; + List<InDetTBBak> inDetBaks = erpSqlServer.select(sqlInDetTbBak, InDetTBBak.class); + if (!inDets.isEmpty() || !inDetBaks.isEmpty()) { + log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄨ韩宸插瓨鍦�:" + orderDetl.getOrderNo() + "==>>" + orderDetl.getOrderNo()); + return true; + } + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); + Map<String, Object> content = getMap(orderDetl); + int insert = erpSqlServer.insert(InDetTB.class, content); + + if (insert == 1) { + log.info("鍏ュ簱鍗曡〃韬洖浼犳垚鍔�:{}", content); + return true; + } else { + log.error("鍏ュ簱鍥炰紶澶辫触,瀹炰綋绫绘墦鍗�:{}", content); + return false; + } + + } + + /** + * 灏嗗叆搴撳崟鐨勮鎯呬俊鎭彃鍏ュ埌ERP琛� + * + * @param order + * @return + */ + @Transactional(rollbackFor = Throwable.class) + public boolean insertInHed(Order order) { + String sqlInHedTb = "select * from lk_InHedTB where LKName='涓壃浜屾湡' and BillNo='" + order.getOrderNo() + "'"; + List<InHedTB> outHeds = erpSqlServer.select(sqlInHedTb, InHedTB.class); + String sqlInHedTbBak = "select * from lk_InHedTB_Bak where LKName='涓壃浜屾湡' and BillNo='" + order.getOrderNo() + "'"; + List<InHedTBBak> inHedBaks = erpSqlServer.select(sqlInHedTbBak, InHedTBBak.class); + if (!outHeds.isEmpty() || !inHedBaks.isEmpty()) { + log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄥご宸插瓨鍦�:" + order.getOrderNo()); + return true; + } + HashMap<String, Object> content = new HashMap<>(); + content.put("BillNo", "'" + order.getOrderNo() + "'"); + content.put("IoKindID", "'" + order.getDocType() + "'"); + content.put("ObjectId", "'" + order.getCstmr() + "'"); + content.put("ObjectName", "'" + order.getCstmrName() + "'"); + content.put("Remark", "'" + order.getMemo() + "'"); + content.put("LKName", "'涓壃浜屾湡'"); + int insert = erpSqlServer.insert(InHedTB.class, content); + String sql = "UPDATE lk_InHedTB SET bPass = 1, LKName='涓壃浜屾湡' WHERE BillNo = '" + order.getOrderNo() + "'"; + int update = erpSqlServer.update(sql); + if (update == 1) { + log.info("鍏ュ簱鍗曡〃澶村洖浼犳垚鍔�:" + content); + return true; + } else { + log.error("鍏ュ簱鍗曡〃澶村洖浼犲け璐�:" + content); + return false; + } + } + + /** + * 灏嗗叆搴撳崟鐨勪俊鎭彃鍏ュ埌ERP琛� + * + * @param orderDetl + * @return + */ + @Transactional(rollbackFor = Throwable.class) + public boolean insertOutDet(OrderDetl orderDetl) { + String sqlInDetTb = "select * from lk_OutDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " + + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'"; + List<OutDetTB> inDets = erpSqlServer.select(sqlInDetTb, OutDetTB.class); + String sqlInDetTbBak = "select * from lk_OutDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " + + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'"; + List<OutDetTBBak> inDetBaks = erpSqlServer.select(sqlInDetTbBak, OutDetTBBak.class); + if (!inDets.isEmpty() || !inDetBaks.isEmpty()) { + log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄨ韩宸插瓨鍦�:" + orderDetl.getOrderNo() + "==>>" + orderDetl.getOrderNo()); + return true; + } + Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); + Map<String, Object> content = getMap(orderDetl); + int insert = erpSqlServer.insert(InDetTB.class, content); + + if (insert == 1) { + log.info("鍏ュ簱鍗曡〃韬洖浼犳垚鍔�:" + content.toString()); + return true; + } else { + log.error("鍏ュ簱鍥炰紶澶辫触,瀹炰綋绫绘墦鍗�:" + content.toString()); + return false; + } + + } + + /** + * 灏嗗叆搴撳崟鐨勮鎯呬俊鎭彃鍏ュ埌ERP琛� + * + * @param order + * @return + */ + @Transactional(rollbackFor = Throwable.class) + public boolean insertOutHed(Order order) { + String sqlInHedTb = "select * from lk_OutHedTB where LKName='涓壃浜屾湡' and BillNo='" + order.getOrderNo() + "'"; + List<OutHedTB> outHeds = erpSqlServer.select(sqlInHedTb, OutHedTB.class); + String sqlInHedTbBak = "select * from lk_OutHedTB_Bak where LKName='涓壃浜屾湡' and BillNo='" + order.getOrderNo() + "'"; + List<OutHedTBBak> inHedBaks = erpSqlServer.select(sqlInHedTbBak, OutHedTBBak.class); + if (!outHeds.isEmpty() || !inHedBaks.isEmpty()) { + log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄥご宸插瓨鍦�:" + order.getOrderNo()); + return true; + } + HashMap<String, Object> content = new HashMap<>(); + content.put("BillNo", "'" + order.getOrderNo() + "'"); + content.put("IoKindID", "'" + order.getDocType() + "'"); + content.put("ObjectId", "'" + order.getCstmr() + "'"); + content.put("ObjectName", "'" + order.getCstmrName() + "'"); + content.put("Remark", "'" + order.getMemo() + "'"); + content.put("LKName", "'涓壃浜屾湡'"); + int insert = erpSqlServer.insert(OutHedTB.class, content); + String sql = "UPDATE lk_OutHedTB SET bPass = 1, LKName='涓壃浜屾湡' WHERE BillNo = '" + order.getOrderNo() + "'"; + int update = erpSqlServer.update(sql); + if (update == 1) { + log.info("鍏ュ簱鍗曡〃澶村洖浼犳垚鍔�:" + content); + return true; + } else { + log.error("鍏ュ簱鍗曡〃澶村洖浼犲け璐�:" + content); + return false; + } + } + + private Map<String, Object> getMap(OrderDetl orderDetl) { + Map<String, Object> content = new HashMap<>(); + content.put("BillNo", "'" + orderDetl.getOrderNo() + "'"); + content.put("iNO", "'" + orderDetl.getINO() + "'"); + content.put("detId", orderDetl.getThreeCode()); + content.put("ItemId", "'" + orderDetl.getThreeCode() + "'"); + content.put("ItemCode", "'" + orderDetl.getMatnr() + "'"); + content.put("ItemBatch", "'" + orderDetl.getBatch() + "'"); + content.put("proType", "'" + orderDetl.getProType() + "'"); + content.put("remark", "'" + orderDetl.getMemo() + "'"); + content.put("OrderNo", "'" + orderDetl.getOutOrderNo() + "'"); + content.put("MainNum", orderDetl.getQty()); + content.put("WareId", "'" + orderDetl.getWareId() + "'"); + content.put("WareName", "'" + orderDetl.getWareName() + "'"); + content.put("Packing", "'" + orderDetl.getPacking() + "'"); + content.put("LuHao", "'" + orderDetl.getLuHao() + "'"); + content.put("sPgNO", "'" + orderDetl.getSPgNO() + "'"); + content.put("temp1", "'" + orderDetl.getTemp1() + "'"); + content.put("temp2", "'" + orderDetl.getTemp2() + "'"); + content.put("temp3", "'" + orderDetl.getTemp3() + "'"); + content.put("LKName", "'涓壃浜屾湡'"); + return content; + } +} -- Gitblit v1.9.1