diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java index 622362a56..f35c72f5e 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java @@ -372,6 +372,8 @@ public class DistributionParcelListEntity extends TenantEntity { @ApiModelProperty(value = "体积") private BigDecimal volume;//体积 + @ApiModelProperty(value = "是否中转") + private Integer isTransfer;//是否中转 // /** // * 配送状态 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 3e201b64f..6ed13419e 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 @@ -129,4 +129,6 @@ public interface IDistributionParcelListClient { @GetMapping(API_PREFIX+"/findByOrderInfoByOrderPackageCodeAndWarehouseId") Map findByOrderInfoByOrderPackageCodeAndWarehouseId(@RequestParam String orderPackCode,@RequestParam Long warehouseId); + @GetMapping(API_PREFIX+"/updateTransferStatus") + void updateTransferStatus(@RequestParam String orderCode, @RequestParam Long warehouseId, @RequestParam Integer isTransfer); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineWaybillPackageEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineWaybillPackageEntity.java new file mode 100644 index 000000000..3e5e42ad8 --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineWaybillPackageEntity.java @@ -0,0 +1,53 @@ +package com.logpm.trunkline.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +@Data +@TableName("logpm_trunkline_waybill_package") +@ApiModel(value = "TrunklineWaybillPackage对象", description = "运单包件关联表") +@EqualsAndHashCode(callSuper = true) +public class TrunklineWaybillPackageEntity extends TenantEntity { + + /** 预留1 */ + @ApiModelProperty(name = "预留1",notes = "") + private String reserve1 ; + /** 预留2 */ + @ApiModelProperty(name = "预留2",notes = "") + private String reserve2 ; + /** 预留3 */ + @ApiModelProperty(name = "预留3",notes = "") + private String reserve3 ; + /** 预留4 */ + @ApiModelProperty(name = "预留4",notes = "") + private String reserve4 ; + /** 预留5 */ + @ApiModelProperty(name = "预留5",notes = "") + private String reserve5 ; + /** 运单id */ + @ApiModelProperty(name = "运单id",notes = "") + private Long waybillId; + /** 运单号 */ + @ApiModelProperty(name = "运单号",notes = "") + private String waybillNo; + /** 暂存单包件id */ + @ApiModelProperty(name = "暂存单包件id",notes = "") + private Long advanceDetailId; + /** 包件码 */ + @ApiModelProperty(name = "包件码",notes = "") + private String orderPackageCode; + /** 是否签收 */ + @ApiModelProperty(name = "是否签收",notes = "") + private Integer isSignfor; + /** 暂存单id */ + @ApiModelProperty(name = "暂存单id",notes = "") + private Long advanceId; + /** 订单自编号 */ + @ApiModelProperty(name = "订单自编号",notes = "") + private String orderCode; + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java index c66531fc8..cdb1dac88 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataCodeServiceImpl.java @@ -173,7 +173,7 @@ public class BasicdataCodeServiceImpl implements IBasicdataCodeService { } - return warehouseCode+"TH"+dateShort+CommonUtil.geFourNumber(incr,5); + return warehouseCode+"TH"+CommonUtil.geFourNumber(incr,5); } private String generateExOrderCode(Integer type, String warehouseCode, String orderCode) { 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 ecde9ee1d..a607df9c8 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 @@ -259,4 +259,11 @@ public class DistributionParcelListClient implements IDistributionParcelListClie } + + @Override + public void updateTransferStatus(String orderCode, Long warehouseId,Integer isTransfer) { + + distributionParcelListService.updateTransferStatus(orderCode,warehouseId,isTransfer); + + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index f843de016..2852e4076 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -165,4 +165,6 @@ public interface DistributionParcelListMapper extends BaseMapper packageIds); + + void updateTransferStatus(@Param("orderCode") String orderCode, @Param("warehouseId") Long warehouseId, @Param("isTransfer") Integer isTransfer); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index d051c4cd4..2fdb62107 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -250,6 +250,9 @@ and ldpl.order_package_status = #{param.orderPackageStatus} + + and ldpl.waybill_number = #{param.waybillNumber} + @@ -1048,4 +1051,11 @@ and warehouse_id = #{warehouseId} + + update logpm_distribution_parcel_list + set is_transfer = #{isTransfer} + where order_code = #{orderCode} + and warehouse_id = #{warehouseId} + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java index 5176732fa..28f749d30 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionParcelListService.java @@ -164,9 +164,11 @@ public interface IDistributionParcelListService extends BaseService and lta.warehouse_id = #{param.warehouseId} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPacakgeMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPacakgeMapper.xml new file mode 100644 index 000000000..353a36403 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPacakgeMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPackageMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPackageMapper.java new file mode 100644 index 000000000..15d532d02 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineWaybillPackageMapper.java @@ -0,0 +1,12 @@ +package com.logpm.trunkline.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.trunkline.entity.TrunklineWaybillPackageEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TrunklineWaybillPackageMapper extends BaseMapper { + + + +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillPackageService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillPackageService.java new file mode 100644 index 000000000..8e7151302 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineWaybillPackageService.java @@ -0,0 +1,12 @@ +package com.logpm.trunkline.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.logpm.trunkline.entity.TrunklineWaybillPackageEntity; +import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO; +import com.logpm.warehouse.entity.WarehouseWaybillEntity; + +import java.util.List; + +public interface ITrunklineWaybillPackageService extends IService { + void saveList(List list, WarehouseWaybillEntity waybillEntity); +} 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 09e78b07f..826051cde 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 @@ -64,6 +64,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { private final IDistributionParcelListClient distributionParcelListClient; private final IDistributionParcelNumberClient distributionParcelNumberClient; private final IRegionFeign regionFeign; + private final ITrunklineWaybillPackageService trunklineWaybillPackageService; @Override public IPage advancePageList(AdvanceDTO advanceDTO) { @@ -239,14 +240,16 @@ public class OpenOrderServiceImpl implements IOpenOrderService { if(StringUtil.isBlank(waybillNo)){ waybillNo = basicdataCodeClient.getCodeByType(CodeNumConstant.WAYBILL, warehouseCode, ""); } + Long departureWarehouseId = openOrderDTO.getDepartureWarehouseId(); + Long destinationWarehouseId = openOrderDTO.getDestinationWarehouseId(); WarehouseWaybillEntity waybillEntity = new WarehouseWaybillEntity(); waybillEntity.setWaybillNo(waybillNo); waybillEntity.setBrand(openOrderDTO.getBrand()); waybillEntity.setOrderNo(openOrderDTO.getOrderCode()); - waybillEntity.setDepartureWarehouseId(openOrderDTO.getDepartureWarehouseId()); + waybillEntity.setDepartureWarehouseId(departureWarehouseId); waybillEntity.setDepartureWarehouseName(openOrderDTO.getDepartureWarehouseName()); - waybillEntity.setDestinationWarehouseId(openOrderDTO.getDestinationWarehouseId()); + waybillEntity.setDestinationWarehouseId(destinationWarehouseId); waybillEntity.setDestinationWarehouseName(openOrderDTO.getDestinationWarehouseName()); waybillEntity.setDocumentMakingTime(CommonUtil.StringToDate(openOrderDTO.getOpenOrderDate())); waybillEntity.setReceiptNum(openOrderDTO.getReceiptNum()); @@ -355,6 +358,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //绑定订单和运单的关系 List advanceEntityList = advanceService.findListByIds(advanceIds); List waybillOrderEntities = new ArrayList<>(); + Set orderCodes = new TreeSet<>(); for (TrunklineAdvanceEntity advanceEntity:advanceEntityList){ TrunklineWaybillOrderEntity waybillOrderEntity = new TrunklineWaybillOrderEntity(); waybillOrderEntity.setWarehouseId(warehouseId); @@ -367,6 +371,10 @@ public class OpenOrderServiceImpl implements IOpenOrderService { waybillOrderEntity.setHandleNumber(0); waybillOrderEntities.add(waybillOrderEntity); + + List list = advanceDetailService.findList(advanceEntity.getId()); + trunklineWaybillPackageService.saveList(list,waybillEntity); + orderCodes.add(advanceEntity.getOrderCode()); advanceEntity.setWaybillStatus("1"); advanceEntity.setWaybillNo(waybillEntity.getWaybillNo()); } @@ -374,6 +382,16 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //修改暂存单的状态为已开单 advanceService.updateBatchById(advanceEntityList); + Integer isTransfer = 1; + if(departureWarehouseId.equals(destinationWarehouseId)){ + isTransfer = 0; + } + + for (String orderCode : orderCodes) { + distributionParcelListClient.updateTransferStatus(orderCode,warehouseId,isTransfer); + } + + //计算扫码入库的包件是否需要把运单和提货单挂上 List billladingPackageList = advanceDetailService.findBillladingPackageByAdvanceIdsAnd(advanceIds); List billladingWaybillEntities = new ArrayList<>(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java index df8d9ba7f..e4b9ae0a7 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java @@ -66,6 +66,12 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl 0){ + price = totalFee.divide(new BigDecimal(realNum),2,BigDecimal.ROUND_UP); + }else{ + price = BigDecimal.ZERO; + } + }else if ("2".equals(chargeType)){ - price = totalFee.divide(realWeight,4,BigDecimal.ROUND_UP); + if(realVolume.compareTo(BigDecimal.ZERO) > 0){ + price = totalFee.divide(realWeight,4,BigDecimal.ROUND_UP); + }else{ + price = BigDecimal.ZERO; + } }else if("3".equals(chargeType)){ - price = totalFee.divide(realVolume,4,BigDecimal.ROUND_UP); + if(realVolume.compareTo(BigDecimal.ZERO) > 0){ + price = totalFee.divide(realVolume,4,BigDecimal.ROUND_UP); + }else{ + price = BigDecimal.ZERO; + } } QueryWrapper queryWrapper = new QueryWrapper<>(); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillPackageServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillPackageServiceImpl.java new file mode 100644 index 000000000..c6320a469 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineWaybillPackageServiceImpl.java @@ -0,0 +1,42 @@ +package com.logpm.trunkline.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.logpm.trunkline.entity.TrunklineWaybillPackageEntity; +import com.logpm.trunkline.mapper.TrunklineWaybillPackageMapper; +import com.logpm.trunkline.service.ITrunklineWaybillPackageService; +import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO; +import com.logpm.warehouse.entity.WarehouseWaybillEntity; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Service +@AllArgsConstructor +public class TrunklineWaybillPackageServiceImpl extends ServiceImpl implements ITrunklineWaybillPackageService { + @Override + public void saveList(List list, WarehouseWaybillEntity waybillEntity) { + List ls = new ArrayList<>(); + for (TrunklineAdvanceDetailVO trunklineAdvanceDetailVO : list) { + Long advanceDetailId = trunklineAdvanceDetailVO.getId(); + Long advanceId = trunklineAdvanceDetailVO.getAdvanceId(); + String orderCode = trunklineAdvanceDetailVO.getOrderCode(); + String orderPackageCode = trunklineAdvanceDetailVO.getOrderPackageCode(); + Long waybillId = waybillEntity.getId(); + String waybillNo = waybillEntity.getWaybillNo(); + TrunklineWaybillPackageEntity waybillPackageEntity = new TrunklineWaybillPackageEntity(); + waybillPackageEntity.setWaybillId(waybillId); + waybillPackageEntity.setWaybillNo(waybillNo); + waybillPackageEntity.setOrderCode(orderCode); + waybillPackageEntity.setAdvanceId(advanceId); + waybillPackageEntity.setAdvanceDetailId(advanceDetailId); + waybillPackageEntity.setOrderPackageCode(orderPackageCode); + waybillPackageEntity.setIsSignfor(0); + ls.add(waybillPackageEntity); + } + saveBatch(ls); + } +}