From 9120dcce18436d943586ea2c61246a4bfbad97ec Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Sat, 19 Oct 2024 20:41:12 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B9=B2=E7=BA=BF=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8Cbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IDistributionParcelListClient.java | 4 + .../com/logpm/trunkline/dto/LoadCarsDTO.java | 3 + .../trunkline/vo/CarsLoadAllOrderVO.java | 2 + .../logpm/trunkline/vo/OrderTotalNumVO.java | 15 ++ .../DistributionStockArticleController.java | 37 ++++ .../distribution/dto/StockArticleDTO.java | 14 ++ .../feign/DistributionParcelListClient.java | 20 +++ .../DistributionStockArticleMapper.java | 2 + .../mapper/DistributionStockArticleMapper.xml | 165 ++++++++++++++++++ .../IDistributionStockArticleService.java | 3 + .../DistributionStockArticleServiceImpl.java | 83 +++++++++ .../mapper/TrunklineCarsLoadMapper.xml | 33 ++-- .../mapper/TrunklineWaybillOrderMapper.java | 5 + .../mapper/TrunklineWaybillOrderMapper.xml | 25 +++ .../ITrunklineWaybillOrderService.java | 5 + .../service/impl/OpenOrderServiceImpl.java | 104 ++++++----- .../impl/TrunklineCarsLoadServiceImpl.java | 52 ++---- .../TrunklineWaybillOrderServiceImpl.java | 11 ++ .../impl/WarehouseWaybillServiceImpl.java | 25 ++- 19 files changed, 518 insertions(+), 90 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderTotalNumVO.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/StockArticleDTO.java diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 45a49b63a..cf83f0164 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -290,5 +290,9 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX + "/findPackageGoodsListByWaybillNoAndWarehouseId") List findPackageGoodsListByWaybillNoAndWarehouseId(@RequestParam String waybillNo, @RequestParam Long warehouseId); + + @PostMapping(API_PREFIX + "/updateZeroList") + void updateZeroList(@RequestBody List updateParceListEntityList); + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java index 76dda93a3..c6733df1a 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java @@ -40,8 +40,11 @@ public class LoadCarsDTO implements Serializable { private String settlementPerson; private String customerType; + private String keyWords; + private Long warehouseId; private List warehouseIds; + private List destinationWarehouseIds; private Integer startCarType; private Integer loadingType; diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadAllOrderVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadAllOrderVO.java index 22e2366fd..f2299ce5e 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadAllOrderVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/CarsLoadAllOrderVO.java @@ -18,9 +18,11 @@ public class CarsLoadAllOrderVO implements Serializable { private String nodeName;//计划仓库 private Date createTime;//创建时间 private String destination;//到站 + private String trayName;//托盘 private String departureWarehouseName;//目的仓 private String destinationWarehouseName;//目的仓 private String shipper;//发货单位 + private String shipperName;//发货人 private String consignee;//收货单位 private String consigneeName;//收货人 private String consigneeMobile;//收货人 diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderTotalNumVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderTotalNumVO.java new file mode 100644 index 000000000..1d8f5267f --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/OrderTotalNumVO.java @@ -0,0 +1,15 @@ +package com.logpm.trunkline.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class OrderTotalNumVO implements Serializable { + + private String orderCode; + private String waybillNo; + private Integer totalNum; + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java index 03c1e8bc7..a6ad325c8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java @@ -22,6 +22,7 @@ import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.feign.IBasicdataClientClient; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.dto.DistributionStockArticleDTO; +import com.logpm.distribution.dto.StockArticleDTO; import com.logpm.distribution.dto.TrunklineOrderCodeDTO; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.excel.DistributionSignForStockArticleExcel; @@ -38,6 +39,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; +import org.springblade.common.exception.CustomerException; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.mp.support.Condition; @@ -111,6 +113,15 @@ public class DistributionStockArticleController extends BladeController { return R.data(DistributionStockArticleWrapper.build().pageVO(pages)); } + @GetMapping("/listTransfer") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入distributionStockArticle") + public R> listTransfer(@ApiIgnore @RequestParam Map distributionStockArticle, Query query) { + IPage pages = distributionStockArticleService.pageListOweTransfer(Condition.getPage(query), distributionStockArticle); + return R.data(DistributionStockArticleWrapper.build().pageVO(pages)); + } + + /** * 配送在库订单 分页 */ @@ -617,4 +628,30 @@ public class DistributionStockArticleController extends BladeController { } + + @ResponseBody + @PostMapping("/findZeroOrderInfo") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入stockArticleDTO") + public R findZeroOrderInfo(@RequestBody StockArticleDTO stockArticleDTO) { + String method = "############findZeroOrderInfo: "; + log.info(method + "请求参数{}", stockArticleDTO); + Long orderId = stockArticleDTO.getOrderId(); + try{ + if(Objects.isNull(orderId)){ + log.warn(method+"订单id为空 orderId={}",orderId); + return R.fail(405,"订单id为空"); + } + + return distributionStockArticleService.findZeroOrderInfo(orderId); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/StockArticleDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/StockArticleDTO.java new file mode 100644 index 000000000..675cdbe10 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/StockArticleDTO.java @@ -0,0 +1,14 @@ +package com.logpm.distribution.dto; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class StockArticleDTO implements Serializable { + + private String orderCode; + + private Long orderId; + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index f39b47969..265f16375 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -597,4 +597,24 @@ public class DistributionParcelListClient implements IDistributionParcelListClie return distributionParcelListService.findPackageGoodsListByWaybillNoAndWarehouseId(waybillNo,warehouseId); } + @Override + public void updateZeroList(List updateParceListEntityList) { + distributionParcelListService.updateBatchById(updateParceListEntityList); + //把updateParceListEntityList转化成id为key的Map + Map updateParcelListMap = updateParceListEntityList.stream().collect(Collectors.toMap(DistributionParcelListEntity::getId, parcelListEntity -> parcelListEntity)); + Set parceListIds = updateParcelListMap.keySet(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("parcel_list_id", parceListIds); + List list = distributionParcelNumberService.list(queryWrapper); + list.forEach(p->{ + Long parcelListId = p.getParcelListId(); + DistributionParcelListEntity parcelList = updateParcelListMap.get(parcelListId); + p.setHandQuantity(parcelList.getQuantity()); + }); + + distributionParcelNumberService.updateBatchById(list); + + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java index b2edaf87b..8d8e385e6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.java @@ -233,4 +233,6 @@ public interface DistributionStockArticleMapper extends BaseMapper pageListOweTransfer(IPage page,@Param("param")DistributionStockArticleOweDTO stockArticleEntity,@Param("warehouseIds")List warehouseIds); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml index c754181c3..8ca685356 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml @@ -2057,4 +2057,169 @@ and waybill_number = #{waybillNo} + + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java index 34d809da5..bca041035 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockArticleService.java @@ -320,4 +320,7 @@ public interface IDistributionStockArticleService extends BaseService pageListOweTransfer(IPage page, Map distributionStockArticle); + + R findZeroOrderInfo(Long orderId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index a53703535..3ba0b0a71 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -2678,6 +2678,89 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl pageListOweTransfer(IPage page, Map distributionStockArticle) { + DistributionStockArticleOweDTO stockArticleEntity = JSONObject.parseObject(JSONObject.toJSONString(distributionStockArticle), DistributionStockArticleOweDTO.class); + if (Func.isNotEmpty(distributionStockArticle.get("typeServer"))) { + stockArticleEntity.setTypeService((String) distributionStockArticle.get("typeServer")); + } + if (Func.isNotEmpty(stockArticleEntity.getOrderCodeNum())) { + String anumbering = stockArticleEntity.getOrderCodeNum().trim(); + List list = CommonUtil.stringNum(anumbering); + if (list.size() > 1) { + stockArticleEntity.setOrderCodeNumList(list); + } else { + stockArticleEntity.setOrderCodeNumLike(anumbering); + } + } + if (Func.isNotEmpty(stockArticleEntity.getWaybillNum())) { + String waybill = stockArticleEntity.getWaybillNum().trim(); + List list = CommonUtil.stringNum(waybill); + if (list.size() > 1) { + stockArticleEntity.setWaybillNumList(list); + } else { + stockArticleEntity.setWaybillNumLike(waybill); + } + } + if (ObjectUtil.isNotEmpty(stockArticleEntity.getIds())) { + String ids = stockArticleEntity.getIds().trim(); + List list = CommonUtil.stringNum(ids); + if (list.size() > 1) { + stockArticleEntity.setIdsList(list); + } else { + stockArticleEntity.setIdsLike(ids); + } + } + +// if(Func.isNotEmpty(stockArticleEntity.getReservation())){ +// stockArticleEntity.setReservationStatus("10"); +// } + +// } + List warehouseIdList = new ArrayList<>(); + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (Func.isEmpty(myCurrentWarehouse)) { + List myWarehouseList = warehouseClient.getMyWarehouseList(); + List collect = myWarehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); + warehouseIdList.addAll(collect); + } else { + warehouseIdList.add(myCurrentWarehouse.getId()); + } + + IPage distributionStockArticleEntityIPage = baseMapper.pageListOweTransfer(page, stockArticleEntity, warehouseIdList); + + return distributionStockArticleEntityIPage; + } + + @Override + public R findZeroOrderInfo(Long orderId) { + DistributionStockArticleEntity stockArticle = baseMapper.selectById(orderId); + DistributionStockArticleVO stockArticleVO = new DistributionStockArticleVO(); + BeanUtil.copy(stockArticle, stockArticleVO); + + String isZero = stockArticle.getIsZero(); + if("0".equals(isZero)){ + log.warn("###########findZeroOrderInfo: 该订单不是零担订单 "); + return R.fail(405,"该订单不是零担订单"); + } + + Long waybillId = stockArticle.getWaybillId(); + + WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); + + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("stock_article_id", orderId); + + List list = distributionParcelListService.list(queryWrapper); + Map map = new HashMap<>(); + map.put("orderInfo",stockArticle); + map.put("waybillEntity",waybillEntity); + map.put("parcelList",list); + + return R.data(map); + } + /** * @param page * @param distributionSignforStockArticle diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index cb0824de1..3b5bd754c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -194,14 +194,15 @@ t.waybill_id waybillId, t.waybill_number waybillNo, t.entry_time_end warehouseEntryTimeEnd, + t.tray_name trayName, lww.create_time createTime, lww.destination destination, lww.destination_warehouse_name destinationWarehouseName, lww.shipper shipper, + lww.shipper_name shipperName, lww.consignee consignee, lww.consignee_name consigneeName, lww.goods_name goodsName, - m.total_number orderNum, lww.total_count totalNum, lww.total_weight totalWeight, lww.total_volume totalVolume, @@ -216,7 +217,8 @@ ldpl.waybill_number, ldsa.is_zero, IF(ldsa.is_zero = 1,ldsa.hand_quantity,count(ldpl.id)) stock_num, - max(ldpl.warehouse_entry_time_end) entry_time_end + max(ldpl.warehouse_entry_time_end) entry_time_end, + IF(ldsa.is_zero = 1,ldsa.trays,GROUP_CONCAT(DISTINCT ldpl.pallet)) tray_name from logpm_distribution_stock_article ldsa left join logpm_distribution_parcel_list ldpl on ldsa.order_code = ldpl.order_code where ldpl.is_deleted = 0 @@ -232,6 +234,7 @@ and ldpl.waybill_number like concat('%',#{param.waybillNo},'%') + and ldsa.order_code like concat('%',#{param.orderCode},'%') @@ -255,7 +258,7 @@ ldsa.hand_quantity) t left join (select ltco.order_code orderCode, ltco.waybill_no waybillNo, - sum(start_num) planNum + IFNULL(sum(start_num),0) planNum from logpm_trunkline_cars_order ltco where 1=1 @@ -264,13 +267,6 @@ group by ltco.order_code, ltco.waybill_no) l on l.orderCode = t.order_code and l.waybillNo = t.waybill_number left join logpm_warehouse_waybill lww on lww.waybill_no = t.waybill_number - left join (select ltwo.waybill_no, - ltwo.order_code, - sum(ltwo.total_number) total_number - from logpm_trunkline_waybill_order ltwo - where ltwo.is_deleted = 0 - group by ltwo.waybill_no, - ltwo.order_code) m on m.order_code = t.order_code and m.waybill_no = t.waybill_number where IFNULL( t.stock_num, 0 )-IFNULL( l.planNum,0) > 0 and lww.abolish_status = 0 and lww.freeze_status = 0 @@ -287,7 +283,7 @@ and t.entry_time_end <= #{param.enterTimeEnd} - and lww.destination like concat('%',#{param.destination},'%') + and lww.destination like concat(#{param.destination},'%') and lww.destination_warehouse_name like concat('%',#{param.destinationWarehouseName},'%') @@ -295,6 +291,18 @@ and lww.goods_name like concat('%',#{param.goodsName},'%') + + and (lww.waybill_no like concat('%',#{param.keyWords},'%') + or lww.shipper_name like concat('%',#{param.keyWords},'%') + or lww.consignee_name like concat('%',#{param.keyWords},'%') + or lww.consignee like concat('%',#{param.keyWords},'%')) + + + and lww.destination_warehouse_id in + + #{item} + + and lww.shipper like concat('%',#{param.shipper},'%') @@ -307,6 +315,9 @@ and lww.remark like concat('%',#{param.remark},'%') + + and t.tray_name like concat('%',#{param.trayName},'%') + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.java index f051a17c6..6fbc80c59 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.java @@ -3,6 +3,7 @@ package com.logpm.trunkline.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity; +import com.logpm.trunkline.vo.OrderTotalNumVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -26,4 +27,8 @@ public interface TrunklineWaybillOrderMapper extends BaseMapper findTotalNumByOrderCodesAndWaybillNos(@Param("orderCodes") List orderCodes, @Param("waybillNos") List waybillNos); + + void updateTotalNumByWaybillId(@Param("waybillId") Long waybillId, @Param("totalCount") Integer totalCount); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.xml index 1243351d1..b6d34dbf2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillOrderMapper.xml @@ -58,4 +58,29 @@ group by ltwo.advance_id + + + + update logpm_trunkline_waybill_order + set total_number = #{totalCount} + where waybill_id = #{waybillId} + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillOrderService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillOrderService.java index 2c32d61b2..2d9bf595e 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillOrderService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillOrderService.java @@ -2,6 +2,7 @@ package com.logpm.trunkline.service; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity; +import com.logpm.trunkline.vo.OrderTotalNumVO; import org.springblade.core.mp.base.BaseService; import java.util.List; @@ -26,4 +27,8 @@ public interface ITrunklineWaybillOrderService extends BaseService findTotalNumByOrderCodesAndWaybillNos(List orderCodes, List waybillNos); + + void updateTotalNumByWaybillId(Long waybillId, Integer totalCount); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index 2b1542340..eb242133f 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -67,6 +67,7 @@ import java.io.InputStream; import java.math.BigDecimal; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; import java.util.stream.Collectors; @@ -328,15 +329,28 @@ public class OpenOrderServiceImpl implements IOpenOrderService { Integer hasPackage = list.get(0).getHasPackage(); if(hasPackage == 0){ + + //把list通过packName进行分组 + Map> groupedByPackName = list.stream() + .collect(Collectors.groupingBy(TrunklineAdvanceEntity::getPackName)); + AtomicReference tn = new AtomicReference<>(0); List addList = new ArrayList<>(); - list.forEach(t -> { - String packName = t.getPackName(); + groupedByPackName.keySet().forEach(packName -> { + List trunklineAdvanceEntities = groupedByPackName.get(packName); + //把trunklineAdvanceEntities中totalNum求和 + Integer totalNum = trunklineAdvanceEntities.stream().mapToInt(TrunklineAdvanceEntity::getTotalNum).sum(); AdvanceDetailGoodsVO goodsVO = new AdvanceDetailGoodsVO(); goodsVO.setGoodsName(packName); - goodsVO.setNum(t.getTotalNum()); + goodsVO.setNum(totalNum); addList.add(goodsVO); + tn.set(tn.get() + totalNum); }); goodsList.addAll(addList); + + openOrderVO.setTotalNum(tn.get()); + openOrderVO.setTotalWeight(BigDecimal.ZERO); + openOrderVO.setTotalVolume(BigDecimal.ZERO); + }else{ goodsList = advanceDetailService.findGoodsListByAdvanceIds(advanceIds); } @@ -1577,45 +1591,47 @@ public class OpenOrderServiceImpl implements IOpenOrderService { String materialCode = pacakgeDetailExcelDTO.getMaterialCode(); advanceDetailModel.setMaterialName(materialName); advanceDetailModel.setMaterialCode(materialCode); - if (StringUtil.isNotBlank(materialCode) && StringUtil.isNotBlank(materialName)) { - Long materialId = materialMap.get(materialCode); - if (!Objects.isNull(materialId)) { - advanceDetailModel.setMaterialId(materialId); - advanceDetailModel.setMaterialCode(materialCode); - advanceDetailModel.setMaterialName(materialName); - } else { - BasicMaterialEntity basicMaterialEntity = basicMaterialClient.findEntityByCodeAndName(materialCode, materialName); - if (Objects.isNull(basicMaterialEntity)) { - basicMaterialEntity = new BasicMaterialEntity(); - basicMaterialEntity.setProductCode(materialCode); - basicMaterialEntity.setName(materialName); - BasicdataBrandEntity basicdataBrandEntity = basicdataBrandClient.findEntityByName(pacakgeDetailExcelDTO.getBrand()); - if (Objects.isNull(basicdataBrandEntity)) { - basicMaterialEntity.setBrandId("1713382405517201409"); - } else { - basicMaterialEntity.setBrandId(basicdataBrandEntity.getId() + ""); - } - basicMaterialEntity.setProperty("家配"); - basicMaterialEntity.setSpecification("件"); - basicMaterialEntity.setPackingSpecification("1件/箱"); - basicMaterialEntity.setLogpmUnit("箱"); - basicMaterialEntity.setSku(materialCode); - basicMaterialEntity.setPackageNum(1); - basicMaterialEntity.setHide(1); - Long aLong = basicMaterialClient.addMaterial(basicMaterialEntity); - basicMaterialEntity.setId(aLong); - materialMap.put(materialCode, aLong); - advanceDetailModel.setMaterialId(aLong); - advanceDetailModel.setMaterialCode(materialCode); - advanceDetailModel.setMaterialName(materialName); - } else { - materialMap.put(materialCode, basicMaterialEntity.getId()); - advanceDetailModel.setMaterialId(basicMaterialEntity.getId()); - advanceDetailModel.setMaterialCode(basicMaterialEntity.getProductCode()); - advanceDetailModel.setMaterialName(basicMaterialEntity.getName()); - } - } - } + + +// if (StringUtil.isNotBlank(materialCode) && StringUtil.isNotBlank(materialName)) { +// Long materialId = materialMap.get(materialCode); +// if (!Objects.isNull(materialId)) { +// advanceDetailModel.setMaterialId(materialId); +// advanceDetailModel.setMaterialCode(materialCode); +// advanceDetailModel.setMaterialName(materialName); +// } else { +// BasicMaterialEntity basicMaterialEntity = basicMaterialClient.findEntityByCodeAndName(materialCode, materialName); +// if (Objects.isNull(basicMaterialEntity)) { +// basicMaterialEntity = new BasicMaterialEntity(); +// basicMaterialEntity.setProductCode(materialCode); +// basicMaterialEntity.setName(materialName); +// BasicdataBrandEntity basicdataBrandEntity = basicdataBrandClient.findEntityByName(pacakgeDetailExcelDTO.getBrand()); +// if (Objects.isNull(basicdataBrandEntity)) { +// basicMaterialEntity.setBrandId("1713382405517201409"); +// } else { +// basicMaterialEntity.setBrandId(basicdataBrandEntity.getId() + ""); +// } +// basicMaterialEntity.setProperty("家配"); +// basicMaterialEntity.setSpecification("件"); +// basicMaterialEntity.setPackingSpecification("1件/箱"); +// basicMaterialEntity.setLogpmUnit("箱"); +// basicMaterialEntity.setSku(materialCode); +// basicMaterialEntity.setPackageNum(1); +// basicMaterialEntity.setHide(1); +// Long aLong = basicMaterialClient.addMaterial(basicMaterialEntity); +// basicMaterialEntity.setId(aLong); +// materialMap.put(materialCode, aLong); +// advanceDetailModel.setMaterialId(aLong); +// advanceDetailModel.setMaterialCode(materialCode); +// advanceDetailModel.setMaterialName(materialName); +// } else { +// materialMap.put(materialCode, basicMaterialEntity.getId()); +// advanceDetailModel.setMaterialId(basicMaterialEntity.getId()); +// advanceDetailModel.setMaterialCode(basicMaterialEntity.getProductCode()); +// advanceDetailModel.setMaterialName(basicMaterialEntity.getName()); +// } +// } +// } advanceDetailEntities.add(advanceDetailModel); } @@ -2643,8 +2659,6 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //把addList中updateType=1的放入一个新的List List addNewList = addList.stream().filter(waybillDetailDTO -> waybillDetailDTO.getUpdateType() == 1).collect(Collectors.toList()); - - List orderList = distributionStockArticleClient.findListByWaybillNumber(waybillNo); orderList.forEach(stockArticleEntity -> { stockArticleEntity.setMallId(consigneeId); @@ -2808,6 +2822,8 @@ public class OpenOrderServiceImpl implements IOpenOrderService { distributionParcelNumberClient.updateListByPracelListIds(updateNumberIds); } + trunklineWaybillOrderService.updateTotalNumByWaybillId(waybillId,totalCount); + } trunklineWaybillPackageService.updateWaybillStatus(waybillEntity); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 9b376d82f..67171a45e 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -92,40 +92,7 @@ import com.logpm.trunkline.service.ITrunklineScanZeroDetailService; import com.logpm.trunkline.service.ITrunklineWaybillOrderService; import com.logpm.trunkline.service.ITrunklineWaybillPackageService; import com.logpm.trunkline.service.ITrunklineWaybillTrackService; -import com.logpm.trunkline.vo.CarsLoadAllOrderVO; -import com.logpm.trunkline.vo.CarsLoadOrderInfoVO; -import com.logpm.trunkline.vo.CarsLoadScanAbnormalVO; -import com.logpm.trunkline.vo.CarsLoadWaybillInfoVO; -import com.logpm.trunkline.vo.CustmoerUnloadNumVO; -import com.logpm.trunkline.vo.GoodsLoadingNumVO; -import com.logpm.trunkline.vo.HasNotFinalNodeIdDataVO; -import com.logpm.trunkline.vo.LoadScanFinalNodeIdVO; -import com.logpm.trunkline.vo.LoadScanOrderVO; -import com.logpm.trunkline.vo.LoadZeroListVO; -import com.logpm.trunkline.vo.LoadingDetailExportVO; -import com.logpm.trunkline.vo.LoadingListGoodsVO; -import com.logpm.trunkline.vo.LoadingListMainVO; -import com.logpm.trunkline.vo.NodeNumDataVO; -import com.logpm.trunkline.vo.OrderCodeNumVO; -import com.logpm.trunkline.vo.OrderScanDetailVO; -import com.logpm.trunkline.vo.SignOrderDetailVO; -import com.logpm.trunkline.vo.SignPackageVO; -import com.logpm.trunkline.vo.SignScanOrderVO; -import com.logpm.trunkline.vo.TripartiteTransferVO; -import com.logpm.trunkline.vo.TrunklineCarsLoadLoadingListVO; -import com.logpm.trunkline.vo.TrunklineCarsLoadScanVO; -import com.logpm.trunkline.vo.TrunklineCarsLoadVO; -import com.logpm.trunkline.vo.TrunklineCarsOrderVO; -import com.logpm.trunkline.vo.TrunklineLoadSignOrderVO; -import com.logpm.trunkline.vo.TrunklineScanZeroDetailVO; -import com.logpm.trunkline.vo.UnloadPackageVO; -import com.logpm.trunkline.vo.UnloadScanOrderVO; -import com.logpm.trunkline.vo.UnloadZeroVO; -import com.logpm.trunkline.vo.WaybillCarsLoadVO; -import com.logpm.trunkline.vo.ZeroNumVO; -import com.logpm.trunkline.vo.ZeroPackageVO; -import com.logpm.trunkline.vo.ZeroSuppleListVO; -import com.logpm.trunkline.vo.ZeroSuppleVO; +import com.logpm.trunkline.vo.*; import com.logpm.warehouse.entity.WarehousePackageTrackLogEntity; import com.logpm.warehouse.entity.WarehouseTrayTypeEntity; import com.logpm.warehouse.entity.WarehouseWayBillDetail; @@ -2807,6 +2774,23 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl pageList = baseMapper.findAllOrderList(page, loadCarsDTO); + List records = pageList.getRecords(); + if(CollUtil.isNotEmpty(records)){ + //把records中所有的orderCode放入一个sET + Set orderCodeSet = records.stream().map(CarsLoadAllOrderVO::getOrderCode).collect(Collectors.toSet()); + Set waybillNoSet = records.stream().map(CarsLoadAllOrderVO::getWaybillNo).collect(Collectors.toSet()); + List orderTotalNumList = trunklineWaybillOrderService.findTotalNumByOrderCodesAndWaybillNos(new ArrayList<>(orderCodeSet),new ArrayList<>(waybillNoSet)); + //把orderTotalNumList中所有元素以orderCode和waybillNo作为key,value为totalNum + Map orderTotalNumMap = orderTotalNumList.stream().collect(Collectors.toMap(t-> t.getOrderCode()+t.getWaybillNo(), OrderTotalNumVO::getTotalNum)); + + + records.forEach(record -> { + record.setTotalNum(orderTotalNumMap.get(record.getOrderCode()+record.getWaybillNo())); + }); + + } + pageList.setRecords(records); + return R.data(pageList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java index 7099684c5..f01e0970d 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillOrderServiceImpl.java @@ -5,6 +5,7 @@ import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity; import com.logpm.trunkline.mapper.TrunklineWaybillOrderMapper; import com.logpm.trunkline.service.ITrunklineWaybillOrderService; +import com.logpm.trunkline.vo.OrderTotalNumVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; @@ -63,4 +64,14 @@ public class TrunklineWaybillOrderServiceImpl extends BaseServiceImpl findTotalNumByOrderCodesAndWaybillNos(List orderCodes, List waybillNos) { + return baseMapper.findTotalNumByOrderCodesAndWaybillNos(orderCodes,waybillNos); + } + + @Override + public void updateTotalNumByWaybillId(Long waybillId, Integer totalCount) { + baseMapper.updateTotalNumByWaybillId(waybillId,totalCount); + } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java index 1e132067e..d7e0d35e0 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java @@ -390,6 +390,11 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderCode, warehouseId); + //把parcelListEntityList转化为firsts为key的Map + Map parcelListEntityMap = parcelListEntityList.stream() + .collect(Collectors.toMap(DistributionParcelListEntity::getFirsts, parcelListEntity -> parcelListEntity)); + + Integer subNum = 0; for (int i = 0; i < splitOrderDTOList.size(); i++) { List articleList = distributionStockArticleClient.findListByOrderCodeLike(orderCode); @@ -452,17 +457,22 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl parcelNumberList = new ArrayList<>(); for (ProductDTO productDTO : products) { + String productName = productDTO.getProductName(); Integer splitNum = productDTO.getSplitNum(); if (Objects.isNull(splitNum)) { splitNum = 0; } + DistributionParcelListEntity parcelList = parcelListEntityMap.get(productName); + parcelList.setQuantity(parcelList.getQuantity()-splitNum); + parcelListEntityMap.put(productName, parcelList); + DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity(); DistributionParcelListEntity distributionParcelListEntity1 = parcelListEntityList.get(0); BeanUtil.copyProperties(distributionParcelListEntity1, distributionParcelListEntity); distributionParcelListEntity.setId(null); distributionParcelListEntity.setStockArticleId(aLong); distributionParcelListEntity.setOrderCode(entity.getOrderCode()); - distributionParcelListEntity.setFirsts(productDTO.getProductName()); + distributionParcelListEntity.setFirsts(productName); distributionParcelListEntity.setQuantity(splitNum); Long orderPackageId = distributionParcelListClient.addReturnId(distributionParcelListEntity); @@ -478,6 +488,19 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl updateParceListEntityList = new ArrayList<>(); + + + parcelListEntityMap.keySet().forEach(key -> { + DistributionParcelListEntity parcelList = parcelListEntityMap.get(key); + DistributionParcelListEntity updateEntiy = new DistributionParcelListEntity(); + updateEntiy.setId(parcelList.getId()); + updateEntiy.setQuantity(parcelList.getQuantity()); + updateParceListEntityList.add(updateEntiy); + }); + distributionParcelListClient.updateZeroList(updateParceListEntityList); + //TODO 日志增加 } }