Browse Source

Merge branch 'pre-production'

master
pref_mail@163.com 8 months ago
parent
commit
ad64ca5730
  1. 19
      blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java
  2. 7
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/AdvanceDTO.java
  3. 3
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/OpenOrderDTO.java
  4. 9
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java
  5. 37
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/AdvanceDetailVO.java
  6. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java
  7. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionSignforClient.java
  8. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml
  9. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  10. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml
  11. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/WarehouseTrayAllocationListener.java
  12. 264
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java
  13. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java
  14. 54
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java
  15. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java
  16. 118
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml
  17. 5
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java
  18. 10
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java
  19. 133
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java
  20. 17
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java
  21. 7
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

19
blade-biz-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@ -21,6 +21,7 @@ import org.springframework.util.StringUtils;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@ -289,14 +290,20 @@ public class CommonUtil {
public static String getHaxCodeByLong(String str,int changdu){ public static String getHaxCodeByLong(String str,int changdu){
long time = new Date().getTime(); // 计算输入字符串的哈希值
int hashValue = (str+time).hashCode(); // 获取哈希值(32位) int hash = str.hashCode();
// 将32位哈希值转换为6位长度的纯数字形式
String s = Math.abs(hashValue) + ""; // 结合当前时间戳和哈希值作为种子
String substring = s.substring(0, changdu); long seed = Instant.now().toEpochMilli() ^ hash;
return substring;
// 使用种子生成一个唯一的数字
long uniqueNumber = Math.abs(seed) % (long)Math.pow(10, changdu);
// 将生成的数字转换为字符串,并确保长度正确
return String.format("%0" + changdu + "d", uniqueNumber);
} }
public static Date addDate(Date date, int second) { public static Date addDate(Date date, int second) {
if(Objects.isNull(date)){ if(Objects.isNull(date)){
return null; return null;

7
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/AdvanceDTO.java

@ -17,6 +17,8 @@ public class AdvanceDTO implements Serializable {
private List<Long> warehouseIds; private List<Long> warehouseIds;
private Long advanceId; private Long advanceId;
private Long waybillId;
private List<Long> advanceIds = new ArrayList<>(); private List<Long> advanceIds = new ArrayList<>();
@ -36,6 +38,11 @@ public class AdvanceDTO implements Serializable {
private String trainNumber; private String trainNumber;
private String serviceNum; private String serviceNum;
private String brand; private String brand;
private String orderPackageCode;
private String firstPackName;
private String secondPackName;
private String thirdPackName;
private String materialName;
private Integer hasPackage; private Integer hasPackage;
private Integer enterNum; private Integer enterNum;

3
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/OpenOrderDTO.java

@ -1,5 +1,6 @@
package com.logpm.trunkline.dto; package com.logpm.trunkline.dto;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -156,5 +157,7 @@ public class OpenOrderDTO implements Serializable {
private Integer isEdit; private Integer isEdit;
private List<TrunklineAdvanceDetailEntity> updateAdvanceDetailList;
} }

9
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceDetailEntity.java

@ -211,5 +211,14 @@ public class TrunklineAdvanceDetailEntity extends TenantEntity {
*/ */
@ApiModelProperty(name = "当前所在仓库名称", notes = "") @ApiModelProperty(name = "当前所在仓库名称", notes = "")
private String nowWarehouseName; private String nowWarehouseName;
@ApiModelProperty(name = "收入品类id", notes = "")
private Long incomeCategoryId;//收入品类id
@ApiModelProperty(name = "收入品类名称", notes = "")
private String incomeCategoryName;//收入品类名称
@ApiModelProperty(name = "成本品类id", notes = "")
private Long costCategoryId;//成本品类id
@ApiModelProperty(name = "成本品类名称", notes = "")
private String costCategoryName;//成本品类名称
} }

37
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/AdvanceDetailVO.java

@ -0,0 +1,37 @@
package com.logpm.trunkline.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class AdvanceDetailVO implements Serializable {
private Long advanceDetailId;//暂存单明细id
private String serviceNum;//服务号
private String orderCode;//订单号
private String trainNumber;//车次号
private String orderPackageCode;//包件码
private String firstPackName;//一级品类
private String secondPackName;//二级品类
private String thirdPackName;//三级品类
private String materialName;//物料名称
private Integer num;//数量
private BigDecimal weight;//重量
private BigDecimal volume;//体积
private String brand;//品牌
private Long incomeCategoryId;//收入品类id
private String incomeCategoryName;//收入品类名称
private Long costCategoryId;//成本品类id
private String costCategoryName;//成本品类名称
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java

@ -16,6 +16,7 @@
*/ */
package com.logpm.distribution.controller; package com.logpm.distribution.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.dto.DistributionStockListDTO; import com.logpm.distribution.dto.DistributionStockListDTO;
@ -79,7 +80,10 @@ public class DistributionStockListController extends BladeController {
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "分页", notes = "传入distributionStockList") @ApiOperation(value = "分页", notes = "传入distributionStockList")
public R<IPage<DistributionStockListEntity>> list(@ApiIgnore @RequestParam Map<String, Object> distributionStockList, Query query) { public R<IPage<DistributionStockListEntity>> list(@ApiIgnore @RequestParam Map<String, Object> distributionStockList, Query query) {
IPage<DistributionStockListEntity> pages = distributionStockListService.page(Condition.getPage(query), Condition.getQueryWrapper(distributionStockList, DistributionStockListEntity.class));
QueryWrapper<DistributionStockListEntity> queryWrapper = Condition.getQueryWrapper(distributionStockList, DistributionStockListEntity.class);
queryWrapper.ne("quantity_stock", 0);
IPage<DistributionStockListEntity> pages = distributionStockListService.page(Condition.getPage(query), queryWrapper);
return R.data(pages); return R.data(pages);
} }

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

@ -121,13 +121,6 @@ public class DistributionSignforClient implements IDistributionSignforClient {
@Override @Override
public Map<String, Object> clerkInventoryCheckPushData(String orderPackageCode) { public Map<String, Object> clerkInventoryCheckPushData(String orderPackageCode) {
return distributionSignforService.clerkInventoryCheckPushData(orderPackageCode); return distributionSignforService.clerkInventoryCheckPushData(orderPackageCode);
} }

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml

@ -320,10 +320,7 @@
newldrs.reservation_id = #{reservationId} ANd newldrs.stock_list_status != 2 AND newldrs.reservation_id = #{reservationId} ANd newldrs.stock_list_status != 2 AND
FIND_IN_SET(newldrs.stocklist_id,t.aaa)) FIND_IN_SET(newldrs.stocklist_id,t.aaa))
AS planNum, AS planNum,
CASE ldslNew.source_type GROUP_CONCAT(DISTINCT IF(ldslNew.source_type = 1,t1.allocation_ids,t2.allocation_ids)) AS allocations,
WHEN 1 THEN t1.allocation_ids
ELSE t2.allocation_ids
END allocations
FROM FROM
( (
SELECT SELECT
@ -343,7 +340,7 @@
AND ldrs.stock_list_status != 2 AND ldrs.stock_list_status != 2
group by ldsl.cargo_number group by ldsl.cargo_number
) t ) t
LEFT JOIN logpm_distribution_stock_list ldslNew ON t.cargo_number = ldslNew.cargo_number LEFT JOIN logpm_distribution_stock_list ldslNew ON t.cargo_number = ldslNew.cargo_number and ldslNew.quantity_stock !=0
LEFT JOIN logpm_distribution_stock ldss ON FIND_IN_SET(ldss.stock_list_id,t.aaa) LEFT JOIN logpm_distribution_stock ldss ON FIND_IN_SET(ldss.stock_list_id,t.aaa)
LEFT JOIN ( LEFT JOIN (

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml

@ -1725,7 +1725,7 @@
AND ldl.is_deleted = 0 AND ldl.is_deleted = 0
AND ldl.signfor_state = 2 AND ldl.signfor_state = 2
</select> </select>
<select id="selectPushOldSingleInventoryPackageSigning" <select id="selectPushOldSingleInventoryPackageLoading"
resultType="com.logpm.oldproject.dto.SignPushDataUnitDTO"> resultType="com.logpm.oldproject.dto.SignPushDataUnitDTO">
SELECT SELECT
ldpl.id AS id, ldpl.id AS id,

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml

@ -675,7 +675,7 @@
) realNum, ) realNum,
lddd.id deliveryDetailsId lddd.id deliveryDetailsId
from logpm_distribution_delivery_details lddd from logpm_distribution_delivery_details lddd
LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id and ldsl.quantity_stock !=0
LEFT JOIN ( SELECT association_value,warehouse_id, GROUP_CONCAT( DISTINCT ( allocation_id )) AS allocation_ids FROM logpm_warehouse_updown_goods WHERE association_type = 4 GROUP BY association_value,warehouse_id ) AS t2 ON ldsl.cargo_number = t2.association_value and ldsl.warehouse_id=t2.warehouse_id LEFT JOIN ( SELECT association_value,warehouse_id, GROUP_CONCAT( DISTINCT ( allocation_id )) AS allocation_ids FROM logpm_warehouse_updown_goods WHERE association_type = 4 GROUP BY association_value,warehouse_id ) AS t2 ON ldsl.cargo_number = t2.association_value and ldsl.warehouse_id=t2.warehouse_id
LEFT JOIN ( SELECT LEFT JOIN ( SELECT
ldpl.material_code, ldpl.material_code,

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/WarehouseTrayAllocationListener.java

@ -842,7 +842,7 @@ public class WarehouseTrayAllocationListener {
String[] split = storageLocation.split(","); String[] split = storageLocation.split(",");
List<String> allocationList = new ArrayList<>(Arrays.asList(split)); List<String> allocationList = new ArrayList<>(Arrays.asList(split));
allocationList.add(allocationName); allocationList.add(allocationName);
updateStockListEntity.setTrayName(StringUtil.join(allocationList,",")); updateStockListEntity.setStorageLocation(StringUtil.join(allocationList,","));
updateStockListList.add(updateStockListEntity); updateStockListList.add(updateStockListEntity);
} }
} }

264
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionParcelListServiceImpl.java

@ -901,140 +901,154 @@ public class DistributionParcelListServiceImpl extends BaseServiceImpl<Distribut
List<DistributionParcelListEntity> distributionParcelListEntities = this.listByIds(packageIds); List<DistributionParcelListEntity> distributionParcelListEntities = this.listByIds(packageIds);
List<Long> materialId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialId).distinct().collect(Collectors.toList()); List<Long> materialId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialId).distinct().collect(Collectors.toList());
List<String> materialCode = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialCode).distinct().collect(Collectors.toList()); List<String> materialCode = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialCode).distinct().collect(Collectors.toList());
List<String> materialUnit = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialUnit).distinct().collect(Collectors.toList()); // List<String> materialUnit = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialUnit).distinct().collect(Collectors.toList());
List<Long> mallId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMarketId).distinct().collect(Collectors.toList()); // List<Long> mallId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMarketId).distinct().collect(Collectors.toList());
List<String> materialName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialName).distinct().collect(Collectors.toList()); // List<String> materialName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getMaterialName).distinct().collect(Collectors.toList());
List<String> brandName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandName).distinct().collect(Collectors.toList()); // List<String> brandName = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandName).distinct().collect(Collectors.toList());
List<Long> brandId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandId).distinct().collect(Collectors.toList()); // List<Long> brandId = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getBrandId).distinct().collect(Collectors.toList());
if (materialId.size() != 1 || materialCode.size() != 1 || materialUnit.size() != 1 || mallId.size() != 1 || materialName.size() != 1 || brandName.size() != 1) { // if (materialId.size() != 1 || materialCode.size() != 1 || materialUnit.size() != 1 || mallId.size() != 1 || materialName.size() != 1 || brandName.size() != 1) {
//该批次包件出现多种物料包件 // //该批次包件出现多种物料包件
return null; // return null;
} // }
List<DistributionStockListInfoEntity> infoEntities = new ArrayList<>();
int num = distributionParcelListEntities.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
if (num <= 0) {
//无有效的在库数量
return null;
}
DistributionStockListEntity distributionStockListEntity = new DistributionStockListEntity();
//直接添加
// distributionStockListEntity.setIncomingBatch(distributionStockArticleEntity.get); //入库批次号
distributionStockListEntity.setServiceNumber(Optional.ofNullable(distributionStockArticleEntity.getServiceNumber()).orElse(null)); //服务号
distributionStockListEntity.setDescriptionGoods(materialName.get(0)); //物料名称
distributionStockListEntity.setCargoNumber(materialCode.get(0)); //物料编号
distributionStockListEntity.setWarehouseName(Optional.ofNullable(distributionStockArticleEntity.getWarehouse()).orElse(null)); //仓库
distributionStockListEntity.setWarehouseId(Optional.ofNullable(distributionStockArticleEntity.getWarehouseId()).orElse(null)); //仓库ID
distributionStockListEntity.setMarketId(Optional.ofNullable(distributionStockArticleEntity.getMallId()).orElse(null)); //商场
distributionStockListEntity.setCargoUnit(materialUnit.get(0)); //货物单位
distributionStockListEntity.setMallName(Optional.ofNullable(distributionStockArticleEntity.getMallName()).orElse(null)); //商场名称 if (!distributionParcelListEntities.isEmpty()) {
distributionStockListEntity.setQuantityStock(num); //库存数量(包件数量) Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getMaterialName));
distributionStockListEntity.setIncomingBatch(Optional.ofNullable(distributionStockArticleEntity.getOrderCode()).orElse(null)); //入库批次 listMap.forEach((k,v)->{
distributionStockListEntity.setOutboundQuantity(0); //出库数量 //校验品牌
List<String> brandList = v.stream().map(DistributionParcelListEntity::getBrandName).distinct().collect(Collectors.toList());
if (brandList.size()>1){
//多个品牌
throw new ServiceException(k+"多个品牌");
}
List<String> mallList = v.stream().map(DistributionParcelListEntity::getMallName).distinct().collect(Collectors.toList());
if (mallList.size()>1){
//多个商场
throw new ServiceException(k+"多个商场");
}
List<Long> brandId = v.stream().map(DistributionParcelListEntity::getBrandId).distinct().collect(Collectors.toList());
if (brandId.size()>1){
//多个品牌
throw new ServiceException(k+"多个品牌");
}
List<String> materialName = v.stream().map(DistributionParcelListEntity::getMaterialName).distinct().collect(Collectors.toList());
if (materialName.size()>1){
throw new ServiceException(k+"存在多个物料单位");
}
List<String> materialUnit = v.stream().map(DistributionParcelListEntity::getMaterialUnit).distinct().collect(Collectors.toList());
if (materialUnit.size()>1){
//多个物料单位
throw new ServiceException(k+"存在多个物料单位");
}
int num = v.stream().mapToInt(DistributionParcelListEntity::getQuantity).sum();
if (num <= 0) {
//无有效的在库数量
throw new ServiceException("无有效的在库数量");
}
DistributionStockListEntity distributionStockListEntity = new DistributionStockListEntity();
//直接添加
distributionStockListEntity.setServiceNumber(Optional.ofNullable(distributionStockArticleEntity.getServiceNumber()).orElse(null)); //服务号
distributionStockListEntity.setDescriptionGoods(materialName.get(0)); //物料名称
distributionStockListEntity.setCargoNumber(materialCode.get(0)); //物料编号
distributionStockListEntity.setWarehouseName(Optional.ofNullable(distributionStockArticleEntity.getWarehouse()).orElse(null)); //仓库
distributionStockListEntity.setWarehouseId(Optional.ofNullable(distributionStockArticleEntity.getWarehouseId()).orElse(null)); //仓库ID
distributionStockListEntity.setMarketId(Optional.ofNullable(distributionStockArticleEntity.getMallId()).orElse(null)); //商场
distributionStockListEntity.setCargoUnit(materialUnit.get(0)); //货物单位
distributionStockListEntity.setMallName(Optional.ofNullable(distributionStockArticleEntity.getMallName()).orElse(null)); //商场名称
distributionStockListEntity.setQuantityStock(num); //库存数量(包件数量)
distributionStockListEntity.setIncomingBatch(Optional.ofNullable(distributionStockArticleEntity.getOrderCode()).orElse(null)); //入库批次
distributionStockListEntity.setOutboundQuantity(0); //出库数量
// distributionStockListEntity.setCargoUnit(Optional.ofNullable(distributionParcelList.getMaterialUnit()).orElse(null));//单位 // distributionStockListEntity.setCargoUnit(Optional.ofNullable(distributionParcelList.getMaterialUnit()).orElse(null));//单位
distributionStockListEntity.setStoreId(Optional.ofNullable(distributionStockArticleEntity.getStoreId()).orElse(null));//门店ID distributionStockListEntity.setStoreId(Optional.ofNullable(distributionStockArticleEntity.getStoreId()).orElse(null));//门店ID
distributionStockListEntity.setMarketCode(Optional.ofNullable(distributionStockArticleEntity.getMallCode()).orElse(null));//商场编码 distributionStockListEntity.setMarketCode(Optional.ofNullable(distributionStockArticleEntity.getMallCode()).orElse(null));//商场编码
distributionStockListEntity.setMarketName(Optional.ofNullable(distributionStockArticleEntity.getMallName()).orElse(null));//商场名称 distributionStockListEntity.setMarketName(Optional.ofNullable(distributionStockArticleEntity.getMallName()).orElse(null));//商场名称
distributionStockListEntity.setStoreCode(Optional.ofNullable(distributionStockArticleEntity.getStoreCode()).orElse(null));//门店编码 distributionStockListEntity.setStoreCode(Optional.ofNullable(distributionStockArticleEntity.getStoreCode()).orElse(null));//门店编码
distributionStockListEntity.setStoreName(Optional.ofNullable(distributionStockArticleEntity.getStoreName()).orElse(null));//门店名称 distributionStockListEntity.setStoreName(Optional.ofNullable(distributionStockArticleEntity.getStoreName()).orElse(null));//门店名称
// distributionStockListEntity.setCategory(Optional.ofNullable(distributionParcelList.getBrandId()+"").orElse(null));//品分类 // distributionStockListEntity.setCategory(Optional.ofNullable(distributionParcelList.getBrandId()+"").orElse(null));//品分类
// 品牌 // 品牌
distributionStockListEntity.setBrandId(brandId.get(0)); distributionStockListEntity.setBrandId(brandId.get(0));
distributionStockListEntity.setBrandName(brandName.get(0)); distributionStockListEntity.setBrandName(brandList.get(0));
distributionStockListEntity.setUnpackingQuantity(0); distributionStockListEntity.setUnpackingQuantity(0);
distributionStockListEntity.setSourceType("1"); //类型 distributionStockListEntity.setSourceType("1"); //类型
BasicMaterialEntity materialOwnId = basicMaterialClient.getMaterialOwnId(materialId.get(0)); BasicMaterialEntity materialOwnId = basicMaterialClient.getMaterialOwnId(materialId.get(0));
distributionStockListEntity.setSku(materialOwnId.getSku()); distributionStockListEntity.setSku(materialOwnId.getSku());
distributionStockListEntity.setMaterialId(materialId.get(0));//货物ID distributionStockListEntity.setMaterialId(materialId.get(0));//货物ID
// distributionStockListEntity.setParcelListId(distributionParcelListEntities.getId());//包件id distributionStockListEntity.setQuantityOccupied(0);//冻结数量
distributionStockListEntity.setQuantityOccupied(0);//冻结数量 distributionStockListEntity.setServiceType(distributionStockArticleEntity.getTypeService());//冻结数量
distributionStockListEntity.setServiceType(distributionStockArticleEntity.getTypeService());//冻结数量 DistributionStockListEntity stockListEntity = distributionStockListService.getStockListEntity(distributionStockArticleEntity.getMallId(), distributionParcelListEntities.get(0).getMaterialId(), distributionStockArticleEntity.getOrderCode(), distributionStockArticleEntity.getStoreId(), distributionStockArticleEntity.getWarehouseId());
DistributionStockListEntity stockListEntity = distributionStockListService.getStockListEntity(distributionStockArticleEntity.getMallId(), distributionParcelListEntities.get(0).getMaterialId(), distributionStockArticleEntity.getOrderCode(), distributionStockArticleEntity.getStoreId(), distributionStockArticleEntity.getWarehouseId()); if (ObjectUtils.isNotNull(stockListEntity)) {
if (ObjectUtils.isNotNull(stockListEntity)) { distributionStockListEntity.setId(stockListEntity.getId());
distributionStockListEntity.setId(stockListEntity.getId()); //有记录
//有记录 DistributionStockListEntity listEntity = new DistributionStockListEntity();
DistributionStockListEntity listEntity = new DistributionStockListEntity(); listEntity.setId(stockListEntity.getId());//id
listEntity.setId(stockListEntity.getId());//id Integer quantityStock = ObjectUtils.isNull(stockListEntity.getQuantityStock()) ? 0 : stockListEntity.getQuantityStock();
// Integer quantity = ObjectUtils.isNull(distributionParcelListEntities.get(0).getQuantity()) ? 0 : distributionParcelListEntities.get(0).getQuantity(); listEntity.setQuantityStock(num + quantityStock);
Integer quantityStock = ObjectUtils.isNull(stockListEntity.getQuantityStock()) ? 0 : stockListEntity.getQuantityStock(); distributionStockListService.updateById(listEntity);
listEntity.setQuantityStock(num + quantityStock); } else {
distributionStockListService.updateById(listEntity); log.info("###########distributionStockListEntity>>>>>>>>,{}", distributionStockListEntity);
} else { distributionStockListService.save(distributionStockListEntity);
log.info("###########distributionStockListEntity>>>>>>>>,{}", distributionStockListEntity); }
distributionStockListService.save(distributionStockListEntity);
}
// distributionStockListEntity.setTrayName(Optional.ofNullable(distributionParcelList.getPallet()).orElse(null)); //托盘
// distributionStockListEntity.setStorageLocation(Optional.ofNullable(distributionParcelList.getGoodsAllocation()).orElse(null)); //库位信息
// distributionStockListEntity.setFactory(Optional.ofNullable(distributionStockArticleEntity.getFactoryTrain()).orElse(null));//工厂车次
// distributionStockListEntity.setDespatch(Optional.ofNullable(distributionStockArticleEntity.getTrainNumber()).orElse(null));//车次号
// distributionStockListEntity.setStockArticleId(Optional.ofNullable(distributionStockArticleEntity.getId()).orElse(null)); //订单ID
// distributionStockListEntity.setOrderCode(Optional.ofNullable(distributionParcelListEntities.get(0).getOrderCode()).orElse(null)); //订单自编号
List<DistributionStockListInfoEntity> infoEntities = new ArrayList<>(); for (DistributionParcelListEntity distributionParcelListEntity : v) {
for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { //添加库存品记录
//添加库存品记录 DistributionStockListInfoEntity distributionStockListInfo = new DistributionStockListInfoEntity();
DistributionStockListInfoEntity distributionStockListInfo = new DistributionStockListInfoEntity(); distributionStockListInfo.setServiceNumber(distributionStockListEntity.getServiceNumber()); //服务号
// BeanUtil.copyProperties(distributionStockListEntity,distributionStockListInfo); distributionStockListInfo.setStockListId(distributionStockListEntity.getId()); //库存品ID
distributionStockListInfo.setDescriptionGoods(distributionStockListEntity.getMallName()); //物料名称
distributionStockListInfo.setServiceNumber(distributionStockListEntity.getServiceNumber()); //服务号 distributionStockListInfo.setCargoNumber(distributionStockListEntity.getCargoNumber()); //物料编号
distributionStockListInfo.setStockListId(distributionStockListEntity.getId()); //库存品ID distributionStockListInfo.setWarehouseName(distributionStockListEntity.getWarehouseName()); //仓库
distributionStockListInfo.setDescriptionGoods(distributionStockListEntity.getMallName()); //物料名称 distributionStockListInfo.setWarehouseId(distributionStockListEntity.getWarehouseId()); //仓库ID
distributionStockListInfo.setCargoNumber(distributionStockListEntity.getCargoNumber()); //物料编号 distributionStockListInfo.setMarketId(distributionStockListEntity.getMarketId()); //商场
distributionStockListInfo.setWarehouseName(distributionStockListEntity.getWarehouseName()); //仓库 distributionStockListInfo.setCargoUnit(distributionStockListEntity.getCargoUnit()); //货物单位
distributionStockListInfo.setWarehouseId(distributionStockListEntity.getWarehouseId()); //仓库ID distributionStockListInfo.setStorageLocation(distributionParcelListEntity.getPallet()); //货物单位
distributionStockListInfo.setMarketId(distributionStockListEntity.getMarketId()); //商场 distributionStockListInfo.setMallName(distributionStockListEntity.getMallName()); //商场名称
distributionStockListInfo.setCargoUnit(distributionStockListEntity.getCargoUnit()); //货物单位 distributionStockListInfo.setQuantityStock(distributionParcelListEntity.getQuantity()); //库存数量(包件数量)
distributionStockListInfo.setStorageLocation(distributionParcelListEntity.getPallet()); //货物单位 distributionStockListInfo.setIncomingBatch(distributionStockListEntity.getIncomingBatch()); //入库批次
distributionStockListInfo.setOutboundQuantity(0); //出库数量
distributionStockListInfo.setMallName(distributionStockListEntity.getMallName()); //商场名称 distributionStockListInfo.setOutboundQuantity(0); //入库时间
distributionStockListInfo.setQuantityStock(distributionParcelListEntity.getQuantity()); //库存数量(包件数量) distributionStockListInfo.setStoreId(distributionStockListEntity.getStoreId());//门店ID
distributionStockListInfo.setIncomingBatch(distributionStockListEntity.getIncomingBatch()); //入库批次 distributionStockListInfo.setMarketCode(distributionStockListEntity.getMarketCode());//商场编码
distributionStockListInfo.setOutboundQuantity(0); //出库数量 distributionStockListInfo.setMarketName(distributionStockListEntity.getMarketName());//商场名称
distributionStockListInfo.setOutboundQuantity(0); //入库时间 distributionStockListInfo.setStoreCode(distributionStockListEntity.getStoreCode());//门店编码
distributionStockListInfo.setStoreName(distributionStockListEntity.getStoreName());//门店名称
// 品牌
distributionStockListInfo.setBrandId(distributionStockListEntity.getBrandId());
distributionStockListInfo.setBrandName(distributionStockListEntity.getBrandName());
distributionStockListInfo.setUnpackingQuantity(0);
distributionStockListInfo.setSourceType("1"); //类型
distributionStockListInfo.setSku(distributionStockListEntity.getSku());
distributionStockListInfo.setMaterialId(distributionStockListEntity.getMaterialId());//货物ID
distributionStockListInfo.setQuantityOccupied(0);//冻结数量
distributionStockListInfo.setServiceType(distributionStockListEntity.getServiceType());//冻结数
//需要包件维度的详情
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity();
warehouseUpdownGoodsEntity.setWarehouseId(myCurrentWarehouse.getId());
warehouseUpdownGoodsEntity.setAssociationType("3");
warehouseUpdownGoodsEntity.setAssociationValue(distributionParcelListEntity.getOrderPackageCode());
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationInformation(warehouseUpdownGoodsEntity);
if (Func.isNotEmpty(locationInformation)) {
distributionStockListInfo.setStorageLocation(locationInformation.getAllocationTitle());
}
distributionStockListInfo.setFactory(distributionStockArticleEntity.getFactoryTrain());
distributionStockListInfo.setDespatch(distributionStockArticleEntity.getTrainNumber());
distributionStockListInfo.setStockArticleId(distributionStockArticleEntity.getId());
distributionStockListInfo.setOrderCode(distributionStockArticleEntity.getOrderCode());
distributionStockListInfo.setParcelListId(distributionParcelListEntity.getId());
distributionStockListInfo.setPackageCode(distributionParcelListEntity.getOrderPackageCode());
distributionStockListInfo.setDespatch(distributionParcelListEntity.getWaybillNumber());
infoEntities.add(distributionStockListInfo);
}
// distributionStockListEntity.setCargoUnit(Optional.ofNullable(distributionParcelList.getMaterialUnit()).orElse(null));//单位 });
distributionStockListInfo.setStoreId(distributionStockListEntity.getStoreId());//门店ID
distributionStockListInfo.setMarketCode(distributionStockListEntity.getMarketCode());//商场编码
distributionStockListInfo.setMarketName(distributionStockListEntity.getMarketName());//商场名称
distributionStockListInfo.setStoreCode(distributionStockListEntity.getStoreCode());//门店编码
distributionStockListInfo.setStoreName(distributionStockListEntity.getStoreName());//门店名称
// distributionStockListEntity.setCategory(Optional.ofNullable(distributionParcelList.getBrandId()+"").orElse(null));//品分类
// 品牌
distributionStockListInfo.setBrandId(distributionStockListEntity.getBrandId());
distributionStockListInfo.setBrandName(distributionStockListEntity.getBrandName());
distributionStockListInfo.setUnpackingQuantity(0);
distributionStockListInfo.setSourceType("1"); //类型
distributionStockListInfo.setSku(distributionStockListEntity.getSku());
distributionStockListInfo.setMaterialId(distributionStockListEntity.getMaterialId());//货物ID
// distributionStockListEntity.setParcelListId(distributionParcelListEntities.getId());//包件id
distributionStockListInfo.setQuantityOccupied(0);//冻结数量
distributionStockListInfo.setServiceType(distributionStockListEntity.getServiceType());//冻结数
//需要包件维度的详情
WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity();
warehouseUpdownGoodsEntity.setWarehouseId(myCurrentWarehouse.getId());
warehouseUpdownGoodsEntity.setAssociationType("3");
warehouseUpdownGoodsEntity.setAssociationValue(distributionParcelListEntity.getOrderPackageCode());
WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationInformation(warehouseUpdownGoodsEntity);
if (Func.isNotEmpty(locationInformation)) {
// distributionStockListInfo.setTrayName(locationInformation.get);
distributionStockListInfo.setStorageLocation(locationInformation.getAllocationTitle());
}
distributionStockListInfo.setFactory(distributionStockArticleEntity.getFactoryTrain());
distributionStockListInfo.setDespatch(distributionStockArticleEntity.getTrainNumber());
distributionStockListInfo.setStockArticleId(distributionStockArticleEntity.getId());
distributionStockListInfo.setOrderCode(distributionStockArticleEntity.getOrderCode());
distributionStockListInfo.setParcelListId(distributionParcelListEntity.getId());
distributionStockListInfo.setPackageCode(distributionParcelListEntity.getOrderPackageCode());
distributionStockListInfo.setDespatch(distributionParcelListEntity.getWaybillNumber());
infoEntities.add(distributionStockListInfo);
} }
distributionStockListInfoService.saveBatch(infoEntities); if (!infoEntities.isEmpty()) {
distributionStockListInfoService.saveBatch(infoEntities);
}
return distributionStockArticleEntity; return distributionStockArticleEntity;
} }

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java

@ -956,7 +956,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
int i1 = "1".equals(stockupDTO.getIsZero()) ? one.getQuantity() : 1; int i1 = "1".equals(stockupDTO.getIsZero()) ? one.getQuantity() : 1;
int i2 = "1".equals(stockupDTO.getIsZero()) ? one.getRealityQuantity() : 1; int i2 = "1".equals(stockupDTO.getIsZero()) ? one.getRealityQuantity() : 1;
if (listYou.size() > 0) { if (!listYou.isEmpty()) {
// //
boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId())); boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId()));
if (b) { if (b) {
@ -1040,7 +1040,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution
int i2 = "1".equals(stockupDTO.getIsZero()) ? one.getRealityQuantity() : 1; int i2 = "1".equals(stockupDTO.getIsZero()) ? one.getRealityQuantity() : 1;
if (listYou.size() > 0) { if (!listYou.isEmpty()) {
// //
boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId())); boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId()));
if (b) { if (b) {

54
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/OpenOrderController.java

@ -350,6 +350,60 @@ public class OpenOrderController {
} }
} }
@ResponseBody
@PostMapping("/findAdvanceDetailListByAdvanceIds")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询暂存单明细", notes = "传入waybillDTO")
public R findAdvanceDetailListByAdvanceIds(@RequestBody AdvanceDTO advanceDTO) {
String method = "############findAdvanceDetailListByAdvanceIds: ";
log.info(method + "请求参数{}", advanceDTO);
List<Long> advanceIds = advanceDTO.getAdvanceIds();
try{
if(CollUtil.isEmpty(advanceIds)){
log.warn(method+"未选择暂存单 advanceIds={}",advanceIds);
return R.fail(403,"未选择暂存单");
}
return openOrderService.findAdvanceDetailListByAdvanceIds(advanceDTO);
}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,"系统异常");
}
}
@ResponseBody
@PostMapping("/findAdvanceDetailListByWaybillId")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "查询暂存单明细通过运单id", notes = "传入waybillDTO")
public R findAdvanceDetailListByWaybillId(@RequestBody AdvanceDTO advanceDTO) {
String method = "############findAdvanceDetailListByWaybillId: ";
log.info(method + "请求参数{}", advanceDTO);
Long waybillId = advanceDTO.getWaybillId();
try{
if(Objects.isNull(waybillId)){
log.warn(method+"未选择运单 waybillId={}",waybillId);
return R.fail(403,"未选择运单");
}
return openOrderService.findAdvanceDetailListByWaybillId(advanceDTO);
}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,"系统异常");
}
}
@ResponseBody @ResponseBody
@PostMapping("/advanceNoPackageToWaybillInfo") @PostMapping("/advanceNoPackageToWaybillInfo")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.java

@ -2,6 +2,7 @@ package com.logpm.trunkline.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.trunkline.dto.AdvanceDTO;
import com.logpm.trunkline.dto.AdvanceDetailDTO; import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO; import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
@ -72,4 +73,8 @@ public interface TrunklineAdvanceDetailMapper extends BaseMapper<TrunklineAdvanc
void deletedAdvanceByOrderCode(String orderCode); void deletedAdvanceByOrderCode(String orderCode);
void deleteByWaybillNo(@Param("waybillNo") String waybillNo); void deleteByWaybillNo(@Param("waybillNo") String waybillNo);
List<AdvanceDetailVO> findAdvanceDetailListByAdvanceIds(@Param("param") AdvanceDTO advanceDTO);
List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(@Param("param") AdvanceDTO advanceDTO);
} }

118
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceDetailMapper.xml

@ -45,7 +45,8 @@
</select> </select>
<select id="findGoodsListByAdvanceIds" resultType="com.logpm.trunkline.vo.AdvanceDetailGoodsVO"> <select id="findGoodsListByAdvanceIds" resultType="com.logpm.trunkline.vo.AdvanceDetailGoodsVO">
select IFNULL(lbc.name,'其他') goodsName, select lbfc.category_id goodsId,
IFNULL(lbfc.category,'其他') goodsName,
ltad.charge_type chargeType, ltad.charge_type chargeType,
sum(ltad.quantity) num, sum(ltad.quantity) num,
sum(ltad.weight) weight, sum(ltad.weight) weight,
@ -59,7 +60,7 @@
<foreach collection="list" item="item" open="(" separator="," close=")"> <foreach collection="list" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
group by IFNULL(lbc.name,'其他'), group by lbfc.category_id,IFNULL(lbfc.category,'其他'),
ltad.charge_type ltad.charge_type
</select> </select>
@ -366,4 +367,117 @@
</foreach> </foreach>
</select> </select>
<select id="findAdvanceDetailListByAdvanceIds" resultType="com.logpm.trunkline.vo.AdvanceDetailVO">
select ltad.id advanceDetailId,
ltad.service_num serviceNum,
ltad.order_code orderCode,
ltad.train_number trainNumber,
ltad.order_package_code orderPackageCode,
ltad.brand brand,
ltad.first_pack_name firstPackName,
ltad.second_pack_name secondPackName,
ltad.third_pack_name thirdPackName,
ltad.material_name materialName,
ltad.quantity num,
ltad.weight weight,
ltad.volume volume,
lbfc1.category_id incomeCategoryId,
IFNULL(lbfc1.category,'其他') incomeCategoryName,
lbfc2.category_id costCategoryId,
IFNULL(lbfc2.category,'其他') costCategoryName
from logpm_trunkline_advance_detail ltad
left join logpm_basicdata_factory_category lbfc1 on lbfc1.brand = ltad.brand and lbfc1.firsts = ltad.first_pack_name and lbfc1.seconds = ltad.second_pack_name and lbfc1.thirds = ltad.third_pack_name and lbfc1.type = 1 AND lbfc1.materiel_name = ltad.material_name
left join logpm_basicdata_factory_category lbfc2 on lbfc2.brand = ltad.brand and lbfc2.firsts = ltad.first_pack_name and lbfc2.seconds = ltad.second_pack_name and lbfc2.thirds = ltad.third_pack_name and lbfc1.type = 2 AND lbfc2.materiel_name = ltad.material_name
where ltad.is_deleted = 0
<if test="param.advanceIds != null and param.advanceIds.size() > 0">
and ltad.advance_id in
<foreach collection="param.advanceIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="param.waybillId != null">
and ltad.waybill_id = #{param.waybillId}
</if>
<if test="param.serviceNum != null and param.serviceNum != ''">
and Locate(#{param.serviceNum}, ltad.service_num) > 0
</if>
<if test="param.orderCode != null and param.orderCode != ''">
and Locate(#{param.orderCode}, ltad.order_code) > 0
</if>
<if test="param.trainNumber != null and param.trainNumber != ''">
and Locate(#{param.trainNumber}, ltad.train_number) > 0
</if>
<if test="param.orderPackageCode != null and param.orderPackageCode != ''">
and Locate(#{param.orderPackageCode}, ltad.order_package_code) > 0
</if>
<if test="param.brand != null and param.brand != ''">
and Locate(#{param.brand}, ltad.brand) > 0
</if>
<if test="param.firstPackName != null and param.firstPackName != ''">
and Locate(#{param.firstPackName}, ltad.first_pack_name) > 0
</if>
<if test="param.secondPackName != null and param.secondPackName != ''">
and Locate(#{param.secondPackName}, ltad.second_pack_name) > 0
</if>
<if test="param.thirdPackName != null and param.thirdPackName != ''">
and Locate(#{param.thirdPackName}, ltad.third_pack_name) > 0
</if>
<if test="param.materialName != null and param.materialName != ''">
and Locate(#{param.materialName}, ltad.material_name) > 0
</if>
</select>
<select id="findAdvanceDetailListByWaybillId" resultType="com.logpm.trunkline.vo.AdvanceDetailVO">
select ltad.id advanceDetailId,
ltad.service_num serviceNum,
ltad.order_code orderCode,
ltad.train_number trainNumber,
ltad.order_package_code orderPackageCode,
ltad.brand brand,
ltad.first_pack_name firstPackName,
ltad.second_pack_name secondPackName,
ltad.third_pack_name thirdPackName,
ltad.material_name materialName,
ltad.quantity num,
ltad.weight weight,
ltad.volume volume,
ltad.income_category_id incomeCategoryId,
ltad.income_category_Name incomeCategoryName,
ltad.cost_category_id costCategoryId,
ltad.cost_category_name costCategoryName
from logpm_trunkline_advance_detail ltad
where ltad.is_deleted = 0
<if test="param.waybillId != null">
and ltad.waybill_id = #{param.waybillId}
</if>
<if test="param.serviceNum != null and param.serviceNum != ''">
and Locate(#{param.serviceNum}, ltad.service_num) > 0
</if>
<if test="param.orderCode != null and param.orderCode != ''">
and Locate(#{param.orderCode}, ltad.order_code) > 0
</if>
<if test="param.trainNumber != null and param.trainNumber != ''">
and Locate(#{param.trainNumber}, ltad.train_number) > 0
</if>
<if test="param.orderPackageCode != null and param.orderPackageCode != ''">
and Locate(#{param.orderPackageCode}, ltad.order_package_code) > 0
</if>
<if test="param.brand != null and param.brand != ''">
and Locate(#{param.brand}, ltad.brand) > 0
</if>
<if test="param.firstPackName != null and param.firstPackName != ''">
and Locate(#{param.firstPackName}, ltad.first_pack_name) > 0
</if>
<if test="param.secondPackName != null and param.secondPackName != ''">
and Locate(#{param.secondPackName}, ltad.second_pack_name) > 0
</if>
<if test="param.thirdPackName != null and param.thirdPackName != ''">
and Locate(#{param.thirdPackName}, ltad.third_pack_name) > 0
</if>
<if test="param.materialName != null and param.materialName != ''">
and Locate(#{param.materialName}, ltad.material_name) > 0
</if>
</select>
</mapper> </mapper>

5
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IOpenOrderService.java

@ -91,6 +91,11 @@ public interface IOpenOrderService {
R createOrderPackage(AdvanceDTO advanceDTO); R createOrderPackage(AdvanceDTO advanceDTO);
R findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO);
R findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO);
// R findWaybillInfo(String waybillNo); // R findWaybillInfo(String waybillNo);
} }

10
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceDetailService.java

@ -2,13 +2,11 @@ package com.logpm.trunkline.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.distribution.vo.OrderPackgeCodeDataVO; import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
import com.logpm.trunkline.dto.AdvanceDTO;
import com.logpm.trunkline.dto.AdvanceDetailDTO; import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO; import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.vo.AdvanceDetailGoodsVO; import com.logpm.trunkline.vo.*;
import com.logpm.trunkline.vo.AdvanceDetailStockNumVO;
import com.logpm.trunkline.vo.BillladingPackageVO;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -85,4 +83,8 @@ public interface ITrunklineAdvanceDetailService extends BaseService<TrunklineAdv
void deleteByWaybillNo(String waybillNo); void deleteByWaybillNo(String waybillNo);
List<TrunklineAdvanceDetailEntity> findListByOrderPackageCodeList(List<String> orderPackageCodes); List<TrunklineAdvanceDetailEntity> findListByOrderPackageCodeList(List<String> orderPackageCodes);
List<AdvanceDetailVO> findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO);
List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO);
} }

133
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java

@ -262,48 +262,48 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
basicdataFreightApiVO.setDestination(openOrderVO.getDestinationCode()); basicdataFreightApiVO.setDestination(openOrderVO.getDestinationCode());
basicdataFreightApiVO.setArrivalWarehouse(openOrderVO.getDestinationWarehouseId() + ""); basicdataFreightApiVO.setArrivalWarehouse(openOrderVO.getDestinationWarehouseId() + "");
if (goodsList.isEmpty()) { // if (goodsList.isEmpty()) {
List<AdvanceDetailGoodsVO> ls = new ArrayList<>(); // List<AdvanceDetailGoodsVO> ls = new ArrayList<>();
//把list中的元素通过packName分组如果pickName为空则换为"其他" // //把list中的元素通过packName分组如果pickName为空则换为"其他"
Map<String, List<TrunklineAdvanceEntity>> groupedEntities = list.stream() // Map<String, List<TrunklineAdvanceEntity>> groupedEntities = list.stream()
.collect(Collectors.groupingBy(entity -> { // .collect(Collectors.groupingBy(entity -> {
String packName = entity.getPackName(); // String packName = entity.getPackName();
return packName != null ? packName : "其他"; // return packName != null ? packName : "其他";
})); // }));
//
groupedEntities.keySet().forEach(packName -> { // groupedEntities.keySet().forEach(packName -> {
int total; // int total;
List<TrunklineAdvanceEntity> advanceEntityList = groupedEntities.get(packName); // List<TrunklineAdvanceEntity> advanceEntityList = groupedEntities.get(packName);
total = advanceEntityList.stream().mapToInt(TrunklineAdvanceEntity::getTotalNum).sum(); // total = advanceEntityList.stream().mapToInt(TrunklineAdvanceEntity::getTotalNum).sum();
AdvanceDetailGoodsVO advanceDetailGoodsVO = new AdvanceDetailGoodsVO(); // AdvanceDetailGoodsVO advanceDetailGoodsVO = new AdvanceDetailGoodsVO();
advanceDetailGoodsVO.setChargeType(1); // advanceDetailGoodsVO.setChargeType(1);
advanceDetailGoodsVO.setGoodsName(packName); // advanceDetailGoodsVO.setGoodsName(packName);
advanceDetailGoodsVO.setNum(total); // advanceDetailGoodsVO.setNum(total);
advanceDetailGoodsVO.setVolume(BigDecimal.ZERO); // advanceDetailGoodsVO.setVolume(BigDecimal.ZERO);
advanceDetailGoodsVO.setWeight(BigDecimal.ZERO); // advanceDetailGoodsVO.setWeight(BigDecimal.ZERO);
ls.add(advanceDetailGoodsVO); // ls.add(advanceDetailGoodsVO);
}); // });
goodsList = new ArrayList<>(ls); // goodsList = new ArrayList<>(ls);
} else { // } else {
for (AdvanceDetailGoodsVO advanceDetailGoodsVO : goodsList) { // for (AdvanceDetailGoodsVO advanceDetailGoodsVO : goodsList) {
String goodsName = advanceDetailGoodsVO.getGoodsName(); // String goodsName = advanceDetailGoodsVO.getGoodsName();
BasicdataCategoryEntity basicdataCategoryEntity = basicdataCategoryClient.findByName(goodsName); // BasicdataCategoryEntity basicdataCategoryEntity = basicdataCategoryClient.findByName(goodsName);
Long goodsId = null; // Long goodsId = null;
if (Objects.isNull(basicdataCategoryEntity)) { // if (Objects.isNull(basicdataCategoryEntity)) {
basicdataCategoryEntity = new BasicdataCategoryEntity(); // basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setType(1); // basicdataCategoryEntity.setType(1);
basicdataCategoryEntity.setName(goodsName); // basicdataCategoryEntity.setName(goodsName);
goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity); // goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity);
} else { // } else {
goodsId = basicdataCategoryEntity.getId(); // goodsId = basicdataCategoryEntity.getId();
} // }
advanceDetailGoodsVO.setGoodsId(goodsId); // advanceDetailGoodsVO.setGoodsId(goodsId);
basicdataFreightApiVO.setCategory(goodsId + ""); // basicdataFreightApiVO.setCategory(goodsId + "");
List<BasicdataFreightDetailEntity> pirceList = basicdataFreightClient.pirce(basicdataFreightApiVO); // List<BasicdataFreightDetailEntity> pirceList = basicdataFreightClient.pirce(basicdataFreightApiVO);
JSONArray price = JSONArray.parseArray(JSON.toJSONString(pirceList)); // JSONArray price = JSONArray.parseArray(JSON.toJSONString(pirceList));
advanceDetailGoodsVO.setArrPirce(price); // advanceDetailGoodsVO.setArrPirce(price);
} // }
} // }
@ -508,18 +508,18 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
warehouseWayBillDetail.setWaybillNo(waybillEntity.getWaybillNo()); warehouseWayBillDetail.setWaybillNo(waybillEntity.getWaybillNo());
Long goodsId = waybillDetailDTO.getGoodsId(); Long goodsId = waybillDetailDTO.getGoodsId();
String goodsName = waybillDetailDTO.getGoodsName(); String goodsName = waybillDetailDTO.getGoodsName();
if (Objects.isNull(goodsId)) { // if (Objects.isNull(goodsId)) {
//如果品名id没有就先通过goodsName查寻,没有就新增 // //如果品名id没有就先通过goodsName查寻,没有就新增
BasicdataCategoryEntity basicdataCategoryEntity = basicdataCategoryClient.findByName(goodsName); // BasicdataCategoryEntity basicdataCategoryEntity = basicdataCategoryClient.findByName(goodsName);
if (Objects.isNull(basicdataCategoryEntity)) { // if (Objects.isNull(basicdataCategoryEntity)) {
basicdataCategoryEntity = new BasicdataCategoryEntity(); // basicdataCategoryEntity = new BasicdataCategoryEntity();
basicdataCategoryEntity.setName(goodsName); // basicdataCategoryEntity.setName(goodsName);
basicdataCategoryEntity.setType(1); // basicdataCategoryEntity.setType(1);
goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity); // goodsId = basicdataCategoryClient.addReturnId(basicdataCategoryEntity);
} else { // } else {
goodsId = basicdataCategoryEntity.getId(); // goodsId = basicdataCategoryEntity.getId();
} // }
} // }
warehouseWayBillDetail.setCreateUser(AuthUtil.getUserId()); warehouseWayBillDetail.setCreateUser(AuthUtil.getUserId());
warehouseWayBillDetail.setUpdateUser(AuthUtil.getUserId()); warehouseWayBillDetail.setUpdateUser(AuthUtil.getUserId());
Date date = new Date(); Date date = new Date();
@ -582,6 +582,11 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
//修改暂存单的状态为已开单 //修改暂存单的状态为已开单
advanceService.updateBatchById(advanceEntityList); advanceService.updateBatchById(advanceEntityList);
//修改暂存单明细的结算品类
List<TrunklineAdvanceDetailEntity> updateAdvanceDetailList = openOrderDTO.getUpdateAdvanceDetailList();
advanceDetailService.updateBatchById(updateAdvanceDetailList);
//计算扫码入库的包件是否需要把运单和提货单挂上 //计算扫码入库的包件是否需要把运单和提货单挂上
openOrderAsyncService.dealwithBillladingInfo(advanceIds,warehouseId,warehouseName,waybillId,waybillNo); openOrderAsyncService.dealwithBillladingInfo(advanceIds,warehouseId,warehouseName,waybillId,waybillNo);
@ -2165,6 +2170,7 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
String warehouseName = openOrderDTO.getWarehouseName(); String warehouseName = openOrderDTO.getWarehouseName();
String editReson = openOrderDTO.getEditReson(); String editReson = openOrderDTO.getEditReson();
String refer = openOrderDTO.getRefer(); String refer = openOrderDTO.getRefer();
List<TrunklineAdvanceDetailEntity> updateAdvanceDetailList = openOrderDTO.getUpdateAdvanceDetailList();
WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId); WarehouseWaybillEntity waybillEntity = warehouseWaybillClient.findByWaybillId(waybillId);
if (Objects.isNull(waybillEntity)) { if (Objects.isNull(waybillEntity)) {
@ -2184,6 +2190,8 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
warehouseWaybillClient.updateEntity(waybillEntity); warehouseWaybillClient.updateEntity(waybillEntity);
advanceDetailService.updateBatchById(updateAdvanceDetailList);
// String operationRemark = "修改运单"+waybillNo+",时间:"+ CommonUtil.dateToString(waybillEntity.getCreateTime())+","+updateMsg; // String operationRemark = "修改运单"+waybillNo+",时间:"+ CommonUtil.dateToString(waybillEntity.getCreateTime())+","+updateMsg;
//异步存入日志 //异步存入日志
openOrderAsyncService.saveUpdateLog(waybillId, waybillNo, "888", editReson, "备注:"+refer+" 修改内容:"+updateMsg, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName,waybillEntity); openOrderAsyncService.saveUpdateLog(waybillId, waybillNo, "888", editReson, "备注:"+refer+" 修改内容:"+updateMsg, AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName,waybillEntity);
@ -3441,6 +3449,23 @@ public class OpenOrderServiceImpl implements IOpenOrderService {
return R.success("添加成功"); return R.success("添加成功");
} }
@Override
public R findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO) {
List<Long> advanceIds = advanceDTO.getAdvanceIds();
List<AdvanceDetailVO> advanceDetailVOList = advanceDetailService.findAdvanceDetailListByAdvanceIds(advanceDTO);
return R.data(advanceDetailVOList);
}
@Override
public R findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO) {
List<AdvanceDetailVO> advanceDetailVOList = advanceDetailService.findAdvanceDetailListByWaybillId(advanceDTO);
return R.data(advanceDetailVOList);
}
private List<EditOrderMsgVO> verifyData(OpenOrderDTO openOrderDTO, WarehouseWaybillEntity waybillEntity) { private List<EditOrderMsgVO> verifyData(OpenOrderDTO openOrderDTO, WarehouseWaybillEntity waybillEntity) {
log.info("###################verifyData: 验证改单数据"); log.info("###################verifyData: 验证改单数据");
// StringBuilder stringBuilder = new StringBuilder(); // StringBuilder stringBuilder = new StringBuilder();

17
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceDetailServiceImpl.java

@ -11,6 +11,7 @@ import com.logpm.basic.entity.BasicPrintTemplateEntity;
import com.logpm.basic.feign.IBasicPrintTemplateClient; import com.logpm.basic.feign.IBasicPrintTemplateClient;
import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO; import com.logpm.distribution.vo.DistributionStockArticleQRCodeVO;
import com.logpm.distribution.vo.OrderPackgeCodeDataVO; import com.logpm.distribution.vo.OrderPackgeCodeDataVO;
import com.logpm.trunkline.dto.AdvanceDTO;
import com.logpm.trunkline.dto.AdvanceDetailDTO; import com.logpm.trunkline.dto.AdvanceDetailDTO;
import com.logpm.trunkline.dto.OrderDetailsDTO; import com.logpm.trunkline.dto.OrderDetailsDTO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
@ -18,11 +19,7 @@ import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.mapper.TrunklineAdvanceDetailMapper; import com.logpm.trunkline.mapper.TrunklineAdvanceDetailMapper;
import com.logpm.trunkline.mapper.TrunklineAdvanceMapper; import com.logpm.trunkline.mapper.TrunklineAdvanceMapper;
import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService;
import com.logpm.trunkline.vo.AdvanceDetailGoodsVO; import com.logpm.trunkline.vo.*;
import com.logpm.trunkline.vo.AdvanceDetailStockNumVO;
import com.logpm.trunkline.vo.BillladingPackageVO;
import com.logpm.trunkline.vo.OrderDetailInfoVO;
import com.logpm.trunkline.vo.TrunklineAdvanceDetailVO;
import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseWaybillClient; import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -350,4 +347,14 @@ public class TrunklineAdvanceDetailServiceImpl extends BaseServiceImpl<Trunkline
List<TrunklineAdvanceDetailEntity> advanceDetailEntities = baseMapper.selectList(queryWrapper); List<TrunklineAdvanceDetailEntity> advanceDetailEntities = baseMapper.selectList(queryWrapper);
return advanceDetailEntities; return advanceDetailEntities;
} }
@Override
public List<AdvanceDetailVO> findAdvanceDetailListByAdvanceIds(AdvanceDTO advanceDTO) {
return baseMapper.findAdvanceDetailListByAdvanceIds(advanceDTO);
}
@Override
public List<AdvanceDetailVO> findAdvanceDetailListByWaybillId(AdvanceDTO advanceDTO) {
return baseMapper.findAdvanceDetailListByWaybillId(advanceDTO);
}
} }

7
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownTypeServiceImpl.java

@ -588,6 +588,13 @@ public class WarehouseUpdownTypeServiceImpl extends BaseServiceImpl<WarehouseUpd
throw new CustomerException(403, "订单信息不存在"); throw new CustomerException(403, "订单信息不存在");
} }
String orderPackageStatus = parcelListEntity.getOrderPackageStatus();
if(!"20".equals(orderPackageStatus)){
log.warn("#################findUpShelfScanGoods: 包件已不在库 orderPackageStatus={}", orderPackageStatus);
throw new CustomerException(403, "包件已不在库");
}
String orderPackageGroundingStatus = parcelListEntity.getOrderPackageGroundingStatus(); String orderPackageGroundingStatus = parcelListEntity.getOrderPackageGroundingStatus();
// if("20".equals(orderPackageGroundingStatus)){ // if("20".equals(orderPackageGroundingStatus)){
// log.warn("#################findUpShelfScanGoods: 包件已上架 code={}",code); // log.warn("#################findUpShelfScanGoods: 包件已上架 code={}",code);

Loading…
Cancel
Save