src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/OutLocInfoDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/OutLocInfoParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/OrderMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/OrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -5,6 +5,7 @@ import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.OutLocInfoParam; import com.zy.asrs.entity.param.*; import com.zy.asrs.service.OpenService; import com.zy.common.web.BaseController; @@ -201,6 +202,18 @@ return openService.getCrnLaneWayInfo(); } @PostMapping("/getOutLocInfoByBarcode") @AppAuth(memo = "根据托盘码,获取出库物料信息进行大屏显示") public synchronized R getOutLocInfoByBarcode(@RequestHeader(required = false) String appkey, @RequestBody OutLocInfoParam param, HttpServletRequest request) { auth(appkey, param, request); if (Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode())) { return R.parse("托盘码不能为空"); } return openService.getOutLocInfoByBarcode(param.getBarcode()); } /*@PostMapping("/order/matSync/default/v1") @AppAuth(memo = "商品信息同步接口") src/main/java/com/zy/asrs/entity/OutLocInfoDto.java
New file @@ -0,0 +1,93 @@ package com.zy.asrs.entity; import lombok.Data; import java.util.List; /** * @author pang.jiabao * @description 获取出库物料信息进行大屏显示出参 * @createDate 2025/4/27 15:56 */ @Data public class OutLocInfoDto { /** * 工作号 */ private Integer wrkNo; /** * 木箱信息 */ private List<Material> materialList; @Data public static class Material { /** * 包装组号 */ private String packageGroupNo; /** * 木箱位置 */ private String boxPos; /** * 卷信息 */ private List<MaterialDetail> materialDetailList; /** * 订单号 */ private String orderNo; /** * 客户名称 */ private String customerName; /** * 订单备注 */ private String memo; /** * 订单明细总数 */ private Integer sum; /** * 未处理订单明细数 */ private Integer toShipQuantity; /** * 工作中订单明细数 */ private Integer workQuantity; @Data public static class MaterialDetail { /** * 卷号 */ private String rollNo; /** * 箱号 */ private String boxNo; /** * 规格 */ private String specs; } } } src/main/java/com/zy/asrs/entity/OutLocInfoParam.java
New file @@ -0,0 +1,18 @@ package com.zy.asrs.entity; import lombok.Data; /** * @author pang.jiabao * @description 根据托盘码,获取出库物料信息进行大屏显示入参 * @createDate 2025/4/27 14:13 */ @Data public class OutLocInfoParam { /** * 托盘码 */ private String barcode; } src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -44,7 +44,7 @@ List<String> selectOrderNosByOrderNoLike(@Param("orderNo") String orderNo); /** * 获取未完成订单统计信息 * 获取未完成订单统计信息(orderNo为空则查询所有) */ List<OrderStatisticsDto> getUnfulfilledOrders(); List<OrderStatisticsDto> getUnfulfilledOrders(@Param("orderNo") String orderNo); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -95,6 +95,10 @@ */ R getCrnLaneWayInfo(); /** * 根据托盘码,获取出库物料信息进行大屏显示 */ R getOutLocInfoByBarcode(String barcode); /** * 添加入库单 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1969,7 +1969,7 @@ @Override public R getUnfulfilledOrders() { // 获取未完成订单统计信息 List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(); List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(""); return R.ok(unfulfilledOrders); } @@ -1979,6 +1979,60 @@ return R.ok(crnLaneWayInfo); } @Override public R getOutLocInfoByBarcode(String barcode) { // 根据托盘码获取任务主档 WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode)); // 根据任务主档获取工作档明细 List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); // 提取包装组号 List<String> brandList = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList()); OutLocInfoDto outLocInfoDto = new OutLocInfoDto(); outLocInfoDto.setWrkNo(wrkMast.getWrkNo()); List<OutLocInfoDto.Material> materialList = new ArrayList<>(); for (String brand : brandList) { // 一个木箱 OutLocInfoDto.Material material = new OutLocInfoDto.Material(); material.setPackageGroupNo(brand); // 包装组号 // 按包装组号过滤 List<WrkDetl> wrkDetls1 = wrkDetls.stream().filter(wrkDetl -> Objects.equals(wrkDetl.getBrand(), brand)).collect(Collectors.toList()); // 卷信息 List<OutLocInfoDto.Material.MaterialDetail> materialDetailList = new ArrayList<>(); for (WrkDetl wrkDetl : wrkDetls1) { OutLocInfoDto.Material.MaterialDetail materialDetail = new OutLocInfoDto.Material.MaterialDetail(); materialDetail.setRollNo(wrkDetl.getModel()); materialDetail.setBoxNo(wrkDetl.getUnit()); materialDetail.setSpecs(wrkDetl.getMatnr()); material.setBoxPos(wrkDetl.getOrigin()); // 托盘上木箱位置 materialDetailList.add(materialDetail); } // 订单信息 WrkDetl wrkDetl = wrkDetls1.get(0); if (wrkDetl != null && wrkDetl.getOrderNo() != null) { Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo())); if (order != null) { material.setOrderNo(order.getOrderNo()); material.setMemo(order.getMemo()); material.setCustomerName(order.getCstmrName()); List<OrderStatisticsDto> unfulfilledOrders = orderMapper.getUnfulfilledOrders(order.getOrderNo()); if (unfulfilledOrders.size() == 1) { OrderStatisticsDto orderStatisticsDto = unfulfilledOrders.get(0); material.setSum(orderStatisticsDto.getSum()); material.setToShipQuantity(orderStatisticsDto.getToShipQuantity()); material.setWorkQuantity(orderStatisticsDto.getWorkQuantity()); } } } material.setMaterialDetailList(materialDetailList); materialList.add(material); } outLocInfoDto.setMaterialList(materialList); return R.ok(outLocInfoDto); } /** * 创建桁架理货出库的工作档 */ src/main/resources/mapper/OrderMapper.xml
@@ -127,6 +127,9 @@ where mo.doc_type = 21 and mo.settle in(1, 2) <if test="orderNo != ''"> and mo.order_no = #{orderNo} </if> GROUP BY mo.order_no </select>