From 04475829f3de5ae3e35fb72d3e96391bab3a084e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期五, 09 十二月 2022 14:48:34 +0800 Subject: [PATCH] # --- src/main/resources/mapper/OrderDetlMapper.xml | 8 ++ src/main/java/com/zy/asrs/service/OrderDetlService.java | 3 + src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | 2 src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 24 ++++++- src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 12 ++++ src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 79 +++++++++++++++----------- 6 files changed, 90 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java index 901910d..ea2f5e5 100644 --- a/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java @@ -33,4 +33,6 @@ List<OrderDetl> selectRemainder(@Param("orderId") Long orderId); + List<OrderDetl> selectByMatnr(@Param("matnr") String matnr); + } diff --git a/src/main/java/com/zy/asrs/service/OrderDetlService.java b/src/main/java/com/zy/asrs/service/OrderDetlService.java index 73740a9..12e102e 100644 --- a/src/main/java/com/zy/asrs/service/OrderDetlService.java +++ b/src/main/java/com/zy/asrs/service/OrderDetlService.java @@ -27,4 +27,7 @@ boolean modifyStatus(Long orderId, Integer status); List<OrderDetl> selectRemainder(Long orderId); + + OrderDetl selectByMatnr(String matnr); + } diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java index 806dba6..aa0f93e 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java @@ -2,15 +2,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.core.common.Cools; -import com.zy.asrs.mapper.OrderDetlMapper; -import com.zy.asrs.entity.OrderDetl; -import com.zy.asrs.service.OrderDetlService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.mapper.OrderDetlMapper; +import com.zy.asrs.service.OrderDetlService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; +@Slf4j @Service("orderDetlService") public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService { @@ -78,4 +80,18 @@ return this.baseMapper.selectRemainder(orderId); } + @Override + public OrderDetl selectByMatnr(String matnr) { + List<OrderDetl> orderDetls = this.baseMapper.selectByMatnr(matnr); + if (!Cools.isEmpty(orderDetls)) { + if (orderDetls.size() > 1) { + log.error("{}鏉$爜鍚屾椂瀛樺湪澶氱瑪璁㈠崟锛岃娉ㄦ剰鏌ョ湅锛�", matnr); + } else { + return orderDetls.get(0); + } + } + return null; + } + + } diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java index 4b26efd..6571c51 100644 --- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java @@ -48,7 +48,19 @@ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // 鍏ュ簱瀹屾垚涓婃姤 if (docType.getPakin() == 1) { + try { + // erp 鍚屾 + int state = 2; + if (!erpService.updateStateForVoucher(order.getOrderNo(), state)) { + throw new CoolException(order.getOrderNo() + "璁㈠崟淇敼State涓�"+state+"澶辫触"); + } else { + erpService.updateTimeForVoucherDetail(order.getOrderNo()); + } + } catch (Exception e) { + log.error("fail", e); + return FAIL.setMsg(e.getMessage()); + } } // 鍑哄簱瀹屾垚涓婃姤 if (docType.getPakout() == 1) { diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java index 70e6a25..49e3237 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java @@ -3,8 +3,8 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.zy.asrs.entity.WrkDetl; -import com.zy.asrs.entity.WrkMast; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; @@ -38,13 +38,13 @@ @Autowired private WrkDetlLogService wrkDetlLogService; @Autowired - private WaitPakinService waitPakinService; - @Autowired - private WaitPakinLogService waitPakinLogService; - @Autowired private OrderService orderService; @Autowired + private OrderDetlService orderDetlService; + @Autowired private ErpService erpService; + @Autowired + private DocTypeService docTypeService; // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no = @Transactional @@ -67,37 +67,48 @@ // 鍏ュ簱 -------------------------------------------------------------------------------- if (wrkMast.getWrkSts() == 10) { - // 鎼滅储瀵瑰簲鍏ュ簱鏉$爜鍦╡rp鏁版嵁搴撲腑鐨勭姸鎬� - List<WrkDetl> wrkDetls0 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); - for (WrkDetl wrkDetl : wrkDetls0) { - Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr()); - if (!Cools.isEmpty(goods)) { - if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) { - log.error("{}鏉$爜鍦╡rp鏁版嵁搴撲腑鏇存柊澶辫触锛�", goods.getBarCode()); - } - } else { - log.error("{}鏉$爜涓嶅湪erp鏁版嵁搴撲腑锛�", wrkDetl.getMatnr()); - } - } - - // 鍏ㄦ澘鍏ュ簱 if (wrkMast.getIoType() == 1) { - // 鍏ュ簱閫氱煡鍗� - if (!Cools.isEmpty(wrkMast.getBarcode())) { - // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。 - if (!waitPakinLogService.save(wrkMast.getBarcode())) { - exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo()); - } - // 鍒犻櫎鍏ュ簱閫氱煡妗� -// if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) { -// exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo()); -// } - } - // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆� + + // 銆� 涓婃姤涓夋柟骞冲彴 銆� if (!Cools.isEmpty(wrkDetls)) { - if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) { - exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo()); + for (WrkDetl wrkDetl : wrkDetls) { + // Goods 琛� + Goods goods = erpService.selectGoodsOne(wrkDetl.getMatnr()); + if (!Cools.isEmpty(goods)) { + if (!erpService.updateStateAndLocForGoods(goods.getBarCode(), 3, wrkMast.getLocNo())) { + log.error("{}鏉$爜鍦╡rp鏁版嵁搴撲腑鏇存柊澶辫触锛�", goods.getBarCode()); + } + } else { + log.error("{}鏉$爜涓嶅湪erp鏁版嵁搴撲腑锛�", wrkDetl.getMatnr()); + } + // OrderDetl 琛� + OrderDetl orderDetl = orderDetlService.selectByMatnr(wrkDetl.getMatnr()); + if (!Cools.isEmpty(orderDetl)) { + Order order = orderService.selectById(orderDetl.getOrderId()); + DocType docType = docTypeService.selectById(order.getDocType()); + if (docType.getPakin() == 1) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme())) { + log.error("{}缂栧彿璁㈠崟锛屾洿鏂皗}鏉$爜鏁伴噺澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr()); + } + } + // Order 琛� + if (order.getSettle() < 3L) { + List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + boolean complete = true; + for (OrderDetl detl : orderDetls) { + if (detl.getAnfme() > detl.getQty()) { + complete = false; + break; + } + } + if (complete) { + if (!orderService.updateSettle(order.getId(), 4L, null)) { + throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�"); + } + } + } + } } } // 鎷f枡鍐嶅叆搴� diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml index 6cab66f..ee1bf31 100644 --- a/src/main/resources/mapper/OrderDetlMapper.xml +++ b/src/main/resources/mapper/OrderDetlMapper.xml @@ -190,4 +190,12 @@ and order_id = #{orderId} </select> + <select id="selectByMatnr" resultMap="BaseResultMap"> + select + * + from man_order_detl + where 1=1 + and matnr = #{matnr} + </select> + </mapper> -- Gitblit v1.9.1