|
@@ -6,6 +6,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONWriter;
|
|
import com.alibaba.fastjson2.JSONWriter;
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
@@ -97,22 +98,44 @@ public class SalePurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchas
|
|
* @param purchaseDto
|
|
* @param purchaseDto
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
|
|
+ @DSTransactional
|
|
public void cancellation(PurchaseDto purchaseDto) {
|
|
public void cancellation(PurchaseDto purchaseDto) {
|
|
if(purchaseDto.getPurchaseStatus()==PurchaseStatusEnum.CENCELLATION.getKey()){//如果采购合同=作废//归还交接单的数量
|
|
if(purchaseDto.getPurchaseStatus()==PurchaseStatusEnum.CENCELLATION.getKey()){//如果采购合同=作废//归还交接单的数量
|
|
//查询出当前采购的明细
|
|
//查询出当前采购的明细
|
|
Purchase purchase = purchaseService.getById(purchaseDto.getId());
|
|
Purchase purchase = purchaseService.getById(purchaseDto.getId());
|
|
|
|
+ List<ContractProduct> upContractProductList = new ArrayList<>();
|
|
|
|
+ List<SampleProduct> upSampleProductList = new ArrayList<>();
|
|
if(ObjectUtils.isNotEmpty(purchase)){
|
|
if(ObjectUtils.isNotEmpty(purchase)){
|
|
List<PurchaseDetail> purchaseDetailList = purchaseDetailService.list(Wrappers.<PurchaseDetail>query().lambda().eq(PurchaseDetail::getPurchaseId,purchase.getId()));
|
|
List<PurchaseDetail> purchaseDetailList = purchaseDetailService.list(Wrappers.<PurchaseDetail>query().lambda().eq(PurchaseDetail::getPurchaseId,purchase.getId()));
|
|
for(PurchaseDetail p:purchaseDetailList){
|
|
for(PurchaseDetail p:purchaseDetailList){
|
|
if(p.getDataResource()==1){//业务来源 0自建 1外销合同采购 2:样品单
|
|
if(p.getDataResource()==1){//业务来源 0自建 1外销合同采购 2:样品单
|
|
- //查询出外销合同
|
|
|
|
- ContractProduct contract = contractProductService.getById(p.getDataResourceId());
|
|
|
|
|
|
+ //查询出外销合同产品
|
|
|
|
+ ContractProduct contractProduct = contractProductService.getById(p.getDataResourceId());
|
|
|
|
+ if(ObjectUtils.isEmpty(contractProduct)){
|
|
|
|
+ throw new ServiceException("作废合同失败,当前采购产品数据有误");
|
|
|
|
+ }
|
|
|
|
+ BigDecimal sumExpendQuantity = contractProduct.getExpendQuantity().add(p.getCount());
|
|
|
|
+ contractProduct.setExpendQuantity(sumExpendQuantity);
|
|
|
|
+ upContractProductList.add(contractProduct);
|
|
}
|
|
}
|
|
if(p.getDataResource()==2){
|
|
if(p.getDataResource()==2){
|
|
-
|
|
|
|
|
|
+ //查询出样品单产品
|
|
|
|
+ SampleProduct sampleProduct = sampleProductService.getById(p.getDataResourceId());
|
|
|
|
+ if(ObjectUtils.isEmpty(sampleProduct)){
|
|
|
|
+ throw new ServiceException("作废合同失败,当前采购产品数据有误");
|
|
|
|
+ }
|
|
|
|
+ BigDecimal sumExpendQuantity = sampleProduct.getExpendQuantity().add(p.getCount());
|
|
|
|
+ sampleProduct.setExpendQuantity(sumExpendQuantity);
|
|
|
|
+ upSampleProductList.add(sampleProduct);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(CollectionUtils.isNotEmpty(upContractProductList)){
|
|
|
|
+ contractProductService.updateBatchById(upContractProductList);
|
|
|
|
+ }
|
|
|
|
+ if(CollectionUtils.isNotEmpty(upSampleProductList)){
|
|
|
|
+ sampleProductService.updateBatchById(upSampleProductList);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
this.updateById(purchaseDto);
|
|
this.updateById(purchaseDto);
|
|
}
|
|
}
|