Browse Source

1.零担订单生成包件数量逻辑

training
zhenghaoyu 1 year ago
parent
commit
7263d6998b
  1. 7
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java
  2. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java
  3. 84
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java

7
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelNumberClient.java

@ -21,8 +21,12 @@ import org.springblade.core.mp.support.BladePage;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 订单零担包件数量记录 Feign接口类
*
@ -47,4 +51,7 @@ public interface IDistributionParcelNumberClient {
@GetMapping(TOP)
BladePage<DistributionParcelNumberEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
@PostMapping(API_PREFIX + "/addBatch")
void addBatch(@RequestBody List<DistributionParcelNumberEntity> parcelNumberList);
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelNumberClient.java

@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
/**
* 订单零担包件数量记录 Feign实现类
*
@ -50,4 +52,9 @@ public class DistributionParcelNumberClient implements IDistributionParcelNumber
return BladePage.of(page);
}
@Override
public void addBatch(List<DistributionParcelNumberEntity> parcelNumberList) {
distributionParcelNumberService.saveBatch(parcelNumberList);
}
}

84
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java

@ -11,8 +11,10 @@ import com.logpm.basicdata.feign.IBasicdataClientClient;
import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionParcelListClient;
import com.logpm.distribution.feign.IDistributionParcelNumberClient;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.oldproject.entity.WayBillEntity;
import com.logpm.oldproject.entity.WaybillDesEntity;
@ -61,6 +63,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
private final IBasicdataStoreBusinessClient basicdataStoreBusinessClient;
private final IWarehouseWayBillDetailService warehouseWayBillDetailService;
private final IDistributionParcelListClient distributionParcelListClient;
private final IDistributionParcelNumberClient distributionParcelNumberClient;
private final IDistributionStockArticleClient distributionStockArticleClient;
@ -159,12 +162,15 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
String destinationWarehouse = warehouseWaybill.getDestinationWarehouseName();//目的仓
Integer totalCount = warehouseWaybill.getTotalCount();//订单总数量
Integer stockCount = warehouseWaybill.getStockCount();//订单在库数量
String consignee = warehouseWaybill.getConsignee();
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.findByName(destinationWarehouse);
DistributionStockArticleEntity distributionStockArticleEntity = distributionStockArticleClient.findByOrderSelfNum(waybillNo);
BasicdataClientEntity clientEntity = basicdataClientClient.findByName(consignee);
Date date = new Date();
Long id = null;
if (Objects.isNull(distributionStockArticleEntity)) {
Date date = new Date();
distributionStockArticleEntity = new DistributionStockArticleEntity();
distributionStockArticleEntity.setOrderCode(warehouseWaybill.getWaybillNo());
@ -172,7 +178,8 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
distributionStockArticleEntity.setWaybillNumber(waybillNo);
distributionStockArticleEntity.setWaybillId(warehouseWaybill.getId());
distributionStockArticleEntity.setWarehouseId(basicdataWarehouseEntity.getId());
distributionStockArticleEntity.setMallName(warehouseWaybill.getConsignee());
distributionStockArticleEntity.setMallName(consignee);
distributionStockArticleEntity.setMallCode(clientEntity.getClientCode());
distributionStockArticleEntity.setMallId(warehouseWaybill.getConsigneeId());
distributionStockArticleEntity.setDescriptionGoods(warehouseWaybill.getGoodsName());
distributionStockArticleEntity.setWarehouse(basicdataWarehouseEntity.getName());
@ -202,6 +209,7 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
distributionStockArticleEntity.setCustomerAddress(warehouseWaybill.getConsigneeAddress());
distributionStockArticleEntity.setGenre(1);
distributionStockArticleEntity.setCreateUser(1123598821738675201L);
distributionStockArticleEntity.setUpdateUser(1123598821738675201L);
distributionStockArticleEntity.setSortingQuantity(0); //分拣件数
distributionStockArticleEntity.setDeliveryQuantity(0); //配送件数
distributionStockArticleEntity.setTransferQuantity(0); //中转件数
@ -216,6 +224,13 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
distributionStockArticleEntity.setConsigneeUnit(customerName);//收货单位(经销商)
distributionStockArticleEntity.setConsigneePerson(warehouseWaybill.getConsigneeName());//收货人
distributionStockArticleEntity.setConsigneeMobile(warehouseWaybill.getConsigneeMobile());
distributionStockArticleEntity.setConsigneeAddress(warehouseWaybill.getConsigneeAddress());
distributionStockArticleEntity.setWarehouseEntryTimeEnd(date);
distributionStockArticleEntity.setSendWarehouseId(warehouseWaybill.getDepartureWarehouseId());
distributionStockArticleEntity.setSendWarehouseName(warehouseWaybill.getDepartureWarehouseName());
distributionStockArticleEntity.setAcceptWarehouseId(warehouseWaybill.getDestinationWarehouseId());
distributionStockArticleEntity.setAcceptWarehouseName(warehouseWaybill.getDestinationWarehouseName());
distributionStockArticleEntity.setIsZero("1");
distributionStockArticleEntity.setTenantId(TenantNum.HUITONGCODE);
@ -240,11 +255,31 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
List<DistributionParcelListEntity> ls = new ArrayList<>();
for (WarehouseWayBillDetail warehouseWayBillDetail : details) {
DistributionParcelListEntity entity = new DistributionParcelListEntity();
entity.setMaterialName(warehouseWayBillDetail.getProductName());
entity.setFirsts(warehouseWayBillDetail.getProductName());
entity.setTenantId("627683");
entity.setCreateUser(distributionStockArticleEntity.getCreateUser());
entity.setUpdateUser(distributionStockArticleEntity.getCreateUser());
entity.setCreateDept(distributionStockArticleEntity.getCreateDept());
entity.setWarehouseId(distributionStockArticleEntity.getWarehouseId());
entity.setWarehouse(distributionStockArticleEntity.getWarehouse());
entity.setQuantity(warehouseWayBillDetail.getNum());
entity.setConditions(3);
entity.setConditions(1);
entity.setStockArticleId(id);
entity.setOrderCode(distributionStockArticleEntity.getOrderCode());
entity.setOrderPackageStatus("20");
entity.setOrderPackageFreezeStatus("10");
entity.setOrderPackageGroundingStatus("10");
entity.setOrderPackageStockupStatus("10");
entity.setOrderPackageReservationStatus("10");
entity.setOrderPackageLoadingStatus("10");
entity.setWaybillNumber(distributionStockArticleEntity.getWaybillNumber());
entity.setWarehouseEntryTimeEnd(date);
entity.setSendWarehouseId(warehouseWaybill.getDepartureWarehouseId());
entity.setSendWarehouseName(warehouseWaybill.getDepartureWarehouseName());
entity.setAcceptWarehouseId(warehouseWaybill.getDestinationWarehouseId());
entity.setAcceptWarehouseName(warehouseWaybill.getDestinationWarehouseName());
ls.add(entity);
}
boolean b = distributionParcelListClient.addBatch(ls);
if (!b) {
@ -252,12 +287,31 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
throw new CustomerException(405, "保存包件信息失败");
}
List<DistributionParcelNumberEntity> parcelNumberList = new ArrayList<>();
for (DistributionParcelListEntity entity:ls){
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(id);
parcelNumberEntity.setParcelListId(entity.getId());
if(totalCount.equals(stockCount)){
parcelNumberEntity.setHandQuantity(entity.getQuantity());
}else{
parcelNumberEntity.setHandQuantity(0);
}
parcelNumberEntity.setQuantity(entity.getQuantity());
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberList.add(parcelNumberEntity);
}
//存入零担订单包件数量
distributionParcelNumberClient.addBatch(parcelNumberList);
} else {
id = distributionStockArticleEntity.getId();
distributionStockArticleEntity.setTotalNumber(totalCount);
distributionStockArticleEntity.setHandQuantity(stockCount);
distributionStockArticleEntity.setWarehouseEntryTimeEnd(date);
log.info(">>>> 更新订单");
checkStatus(distributionStockArticleEntity);
distributionStockArticleClient.saveOrUpdate(distributionStockArticleEntity);
@ -338,8 +392,11 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
Long articleId = distributionStockArticleEntity.getId();
Integer handQuantity = distributionStockArticleEntity.getHandQuantity();
String orderSelfNum = distributionStockArticleEntity.getOrderCode();
Long orderId = distributionStockArticleEntity.getId();
Long warehouseId = distributionStockArticleEntity.getWarehouseId();
List<ProductDTO> submitList = new ArrayList<>();
List<DistributionStockArticleEntity> articleList = distributionStockArticleClient.likeOrderSelfNumbering(orderSelfNum);
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListClient.findEntityListByOrderCode(orderSelfNum, warehouseId);
int size = articleList.size();
for (int i = 0; i < splitOrderDTOList.size(); i++) {
SplitOrderDTO splitOrderDTO = splitOrderDTOList.get(i);
@ -366,7 +423,9 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
}
allNum = allNum + productDTO.getSplitNum();
DistributionParcelListEntity distributionParcelListEntity = new DistributionParcelListEntity();
distributionParcelListEntity.setMaterialName(productDTO.getProductName());
DistributionParcelListEntity distributionParcelListEntity1 = parcelListEntityList.get(0);
BeanUtil.copyProperties(distributionParcelListEntity1, distributionParcelListEntity);
distributionParcelListEntity.setFirsts(productDTO.getProductName());
distributionParcelListEntity.setQuantity(productDTO.getSplitNum());
list.add(distributionParcelListEntity);
submitList.add(productDTO);
@ -408,6 +467,21 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil
log.warn("###########splitOrder: 保存包件数据失败");
throw new CustomerException(405, "保存包件数据失败");
}
List<DistributionParcelNumberEntity> parcelNumberList = new ArrayList<>();
for (DistributionParcelListEntity distributionParcelListEntity : list) {
DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity();
parcelNumberEntity.setStockArticleId(distributionParcelListEntity.getStockArticleId());
parcelNumberEntity.setParcelListId(distributionParcelListEntity.getId());
parcelNumberEntity.setHandQuantity(distributionParcelListEntity.getQuantity());
parcelNumberEntity.setQuantity(distributionParcelListEntity.getQuantity());
parcelNumberEntity.setDeliveryQuantity(0);
parcelNumberEntity.setSigninQuantity(0);
parcelNumberEntity.setOutboundQuantity(0);
parcelNumberList.add(parcelNumberEntity);
}
//存入零担订单包件数量
distributionParcelNumberClient.addBatch(parcelNumberList);
//减少主订单上在库数量
if (handQuantity - allNum < 0) {
log.warn("###########splitOrder: 拆单数量大于在库数量");

Loading…
Cancel
Save