src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OrderDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/OrderDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } 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); } 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; } } 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) { 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) { // 搜索对应入库条码在erp数据库中的状态 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("{}条码在erp数据库中更新失败!", goods.getBarCode()); } } else { log.error("{}条码不在erp数据库中!", wrkDetl.getMatnr()); } } // 全板入库 if (wrkMast.getIoType() == 1) { // 入库通知单 if (!Cools.isEmpty(wrkMast.getBarcode())) { // 保存入库通知档历史档 if (!waitPakinLogService.save(wrkMast.getBarcode())) { exceptionHandle("保存入库通知档历史档[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("{}条码在erp数据库中更新失败!", 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("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败"); } } } } } } // 拣料再入库 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>