|
|
|
@ -19,7 +19,10 @@ package com.logpm.distribution.service.impl;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.basic.entity.BasicMaterialEntity; |
|
|
|
|
import com.logpm.basic.feign.IBasicMaterialClient; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataClientEntity; |
|
|
|
|
import com.logpm.basicdata.feign.IBasicdataClientClient; |
|
|
|
|
import com.logpm.distribution.dto.DistributionStockListDTO; |
|
|
|
@ -34,6 +37,7 @@ import com.logpm.distribution.vo.DistributionStockListVO;
|
|
|
|
|
import com.logpm.distribution.vo.DistributionStockupStockListInfoVO; |
|
|
|
|
import com.logpm.distribution.vo.StockListInfoListVO; |
|
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
|
import org.springblade.common.constant.DictBizConstant; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
@ -41,6 +45,7 @@ import org.springblade.core.tool.api.R;
|
|
|
|
|
import org.springblade.core.tool.utils.BeanUtil; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.core.tool.utils.ObjectUtil; |
|
|
|
|
import org.springblade.system.cache.DictBizCache; |
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
@ -63,6 +68,7 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
|
|
|
|
|
private final IDistributionUnpackingDetailsService distributionUnpackingDetailsService; |
|
|
|
|
|
|
|
|
|
private final IBasicdataClientClient basicdataClientClient; |
|
|
|
|
private final IBasicMaterialClient basicMaterialClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -129,21 +135,40 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public Boolean parcels(DistributionStockListDTO distributionStockListDTO) { |
|
|
|
|
//查询客户是不是有该物资的拆包
|
|
|
|
|
DistributionStockListEntity one2 = this.getOne(Wrappers.<DistributionStockListEntity>query().lambda() |
|
|
|
|
.eq(DistributionStockListEntity::getPid, distributionStockListDTO.getId()) |
|
|
|
|
.eq(DistributionStockListEntity::getMaterialId, distributionStockListDTO.getMaterialId()) |
|
|
|
|
.eq(DistributionStockListEntity::getMarketId, distributionStockListDTO.getMarketId()) |
|
|
|
|
.eq(ObjectUtil.isNotEmpty(distributionStockListDTO.getStoreId()), DistributionStockListEntity::getStoreId, distributionStockListDTO.getStoreId()) |
|
|
|
|
); |
|
|
|
|
//客户物资信息
|
|
|
|
|
DistributionStockListEntity one = this.getOne(Wrappers.<DistributionStockListEntity>query().lambda() |
|
|
|
|
.eq(DistributionStockListEntity::getId, distributionStockListDTO.getId()) |
|
|
|
|
/*.eq(DistributionStockListEntity::getMarketId, distributionStockListDTO.getMarketId()) |
|
|
|
|
.eq(ObjectUtil.isNotEmpty(distributionStockListDTO.getStoreId()), DistributionStockListEntity::getStoreId, distributionStockListDTO.getStoreId()) |
|
|
|
|
.isNull(DistributionStockListEntity::getPid)*/ |
|
|
|
|
); |
|
|
|
|
if(ObjectUtil.isNotEmpty(one2)){ |
|
|
|
|
DistributionStockListEntity one2 = new DistributionStockListEntity(); |
|
|
|
|
BasicMaterialEntity basicMaterialEntity = new BasicMaterialEntity(); |
|
|
|
|
List<DistributionStockListEntity> list = new ArrayList<>(); |
|
|
|
|
Long aLong = 0L; |
|
|
|
|
if(ObjectUtil.isNotEmpty(distributionStockListDTO.getDescriptionGoods())){ |
|
|
|
|
//选择的
|
|
|
|
|
//查询客户是不是有该物资的拆包
|
|
|
|
|
one2 = this.getOne(Wrappers.<DistributionStockListEntity>query().lambda() |
|
|
|
|
.eq(DistributionStockListEntity::getMaterialId, distributionStockListDTO.getMaterialIdName()) |
|
|
|
|
.eq(DistributionStockListEntity::getMarketId, distributionStockListDTO.getMarketId()) |
|
|
|
|
.eq(ObjectUtil.isNotEmpty(distributionStockListDTO.getStoreId()), DistributionStockListEntity::getStoreId, distributionStockListDTO.getStoreId()) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
//新增物料信息
|
|
|
|
|
basicMaterialEntity.setName(distributionStockListDTO.getMaterialIdName()); |
|
|
|
|
basicMaterialEntity.setProductCode(distributionStockListDTO.getCargoNumber()); |
|
|
|
|
basicMaterialEntity.setPackingSpecification(distributionStockListDTO.getCargoNorms()); |
|
|
|
|
basicMaterialEntity.setSku(distributionStockListDTO.getSku()); |
|
|
|
|
basicMaterialEntity.setPackageNum(distributionStockListDTO.getPackageNum()); |
|
|
|
|
basicMaterialEntity.setLogpmUnit(distributionStockListDTO.getCargoUnit()); |
|
|
|
|
basicMaterialEntity.setPid(distributionStockListDTO.getMaterialId()); |
|
|
|
|
aLong = basicMaterialClient.addMaterial(basicMaterialEntity); |
|
|
|
|
//客户物资信息
|
|
|
|
|
list = this.list(Wrappers.<DistributionStockListEntity>query().lambda() |
|
|
|
|
// .eq(DistributionStockListEntity::getId, distributionStockListDTO.getId())
|
|
|
|
|
.eq(DistributionStockListEntity::getMarketId, distributionStockListDTO.getMarketId()) |
|
|
|
|
.eq(DistributionStockListEntity::getMaterialId, distributionStockListDTO.getMaterialId()) |
|
|
|
|
.eq(ObjectUtil.isNotEmpty(distributionStockListDTO.getStoreId()), DistributionStockListEntity::getStoreId, distributionStockListDTO.getStoreId()) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(ObjectUtils.isNotNull(one2.getId())){ |
|
|
|
|
//有修改
|
|
|
|
|
DistributionStockListEntity d = new DistributionStockListEntity(); |
|
|
|
|
d.setId(one2.getId()); |
|
|
|
@ -154,31 +179,36 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
|
|
|
|
|
}else{ |
|
|
|
|
//没有新增
|
|
|
|
|
DistributionStockListEntity distributionStockListEntity = new DistributionStockListEntity(); |
|
|
|
|
BeanUtils.copyProperties(one,distributionStockListEntity); |
|
|
|
|
distributionStockListEntity.setPid(one.getId()); |
|
|
|
|
BeanUtils.copyProperties(list.get(0),distributionStockListEntity); |
|
|
|
|
distributionStockListEntity.setPid(list.get(0).getId()); |
|
|
|
|
distributionStockListEntity.setSku(distributionStockListDTO.getSku()); |
|
|
|
|
distributionStockListEntity.setQuantityStock(distributionStockListDTO.getStoreNum()); |
|
|
|
|
distributionStockListEntity.setUnpackingQuantity(0); |
|
|
|
|
distributionStockListEntity.setCargoUnit(distributionStockListDTO.getCargoUnit()); |
|
|
|
|
distributionStockListEntity.setSku(distributionStockListDTO.getSku()); |
|
|
|
|
distributionStockListEntity.setCargoUnit(DictBizCache.getValue(DictBizConstant.LOGPM_UNIT,distributionStockListDTO.getCargoUnit()) ); |
|
|
|
|
distributionStockListEntity.setMaterialId(aLong); |
|
|
|
|
distributionStockListEntity.setDescriptionGoods(distributionStockListDTO.getMaterialIdName()); |
|
|
|
|
distributionStockListEntity.setCargoNumber(distributionStockListDTO.getCargoNumber()); |
|
|
|
|
distributionStockListEntity.setCargoNorms(distributionStockListDTO.getCargoNorms()); |
|
|
|
|
distributionStockListEntity.setQuantityOccupied(0); |
|
|
|
|
distributionStockListEntity.setId(null); |
|
|
|
|
|
|
|
|
|
this.save(distributionStockListEntity); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//修改客户物资记录
|
|
|
|
|
DistributionStockListEntity distributionStockListEntity = new DistributionStockListEntity(); |
|
|
|
|
distributionStockListEntity.setId(one.getId()); |
|
|
|
|
distributionStockListEntity.setQuantityStock(one.getQuantityStock()-distributionStockListDTO.getUnpackingQuantity()); |
|
|
|
|
distributionStockListEntity.setId(list.get(0).getId()); |
|
|
|
|
distributionStockListEntity.setQuantityStock(list.get(0).getQuantityStock()-distributionStockListDTO.getUnpackingQuantity()); |
|
|
|
|
|
|
|
|
|
distributionStockListEntity.setUnpackingQuantity( one.getUnpackingQuantity() + distributionStockListDTO.getUnpackingQuantity()); |
|
|
|
|
distributionStockListEntity.setUnpackingQuantity( list.get(0).getUnpackingQuantity() + distributionStockListDTO.getUnpackingQuantity()); |
|
|
|
|
this.updateById(distributionStockListEntity); |
|
|
|
|
|
|
|
|
|
//添加拆包记录
|
|
|
|
|
DistributionUnpackingDetailsEntity distributionUnpackingDetails= new DistributionUnpackingDetailsEntity(); |
|
|
|
|
distributionUnpackingDetails.setStockArticleId(Optional.ofNullable(one.getStockArticleId()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setOrderSelfNumber(Optional.ofNullable(one.getOrderCode()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setItemName(Optional.ofNullable(one.getDescriptionGoods()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setUnpackingQuantity(Optional.ofNullable(one.getUnpackingQuantity()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setStockArticleId(Optional.ofNullable(list.get(0).getStockArticleId()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setOrderSelfNumber(Optional.ofNullable(list.get(0).getOrderCode()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setItemName(Optional.ofNullable(list.get(0).getDescriptionGoods()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setUnpackingQuantity(Optional.ofNullable(list.get(0).getUnpackingQuantity()).orElse(null)); |
|
|
|
|
distributionUnpackingDetails.setStockListId(Optional.ofNullable(distributionStockListDTO.getId()).orElse(null)); |
|
|
|
|
|
|
|
|
|
distributionUnpackingDetailsService.save(distributionUnpackingDetails); |
|
|
|
|