|
@@ -3,6 +3,7 @@ package com.sd.business.service.purchase.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.ruoyi.common.constant.StatusConstant;
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
import com.sd.business.entity.purchase.dto.PurchaseDto;
|
|
import com.sd.business.entity.purchase.dto.PurchaseDto;
|
|
import com.sd.business.entity.purchase.dto.PurchaseSelectDto;
|
|
import com.sd.business.entity.purchase.dto.PurchaseSelectDto;
|
|
@@ -17,7 +18,9 @@ import com.sd.business.service.purchase.PurchaseBomService;
|
|
import com.sd.business.service.purchase.PurchaseService;
|
|
import com.sd.business.service.purchase.PurchaseService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -82,22 +85,55 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
|
|
public PurchaseVo detail(Long id) {
|
|
public PurchaseVo detail(Long id) {
|
|
Purchase Purchase = this.getById(id);
|
|
Purchase Purchase = this.getById(id);
|
|
PurchaseVo result = BeanUtil.toBean(Purchase, PurchaseVo.class);
|
|
PurchaseVo result = BeanUtil.toBean(Purchase, PurchaseVo.class);
|
|
|
|
+
|
|
|
|
+ List<PurchaseBom> list = purchaseBomService.list(q -> q.eq(PurchaseBom::getPurchaseId, id));
|
|
|
|
+ List<PurchaseBomVo> purchaseBomList = BeanUtil.copyToList(list, PurchaseBomVo.class);
|
|
|
|
+ bomSpecService.attributeAssign(purchaseBomList, PurchaseBom::getBomSpecId, (item, bomSpec) -> {
|
|
|
|
+ item.setBomSpecCode(bomSpec.getCode());
|
|
|
|
+ item.setBomSpecName(bomSpec.getName());
|
|
|
|
+ item.setBomSpecColour(bomSpec.getColour());
|
|
|
|
+ item.setBomSpecLength(bomSpec.getLength());
|
|
|
|
+ item.setBomSpecWidth(bomSpec.getWidth());
|
|
|
|
+ item.setBomSpecHeight(bomSpec.getHeight());
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ result.setPurchaseBomList(purchaseBomList);
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void add(PurchaseDto purchaseDto) {
|
|
public void add(PurchaseDto purchaseDto) {
|
|
|
|
+ purchaseDto.setReturnAmount(BigDecimal.ZERO);
|
|
|
|
+ purchaseDto.setClosedAccountAmount(BigDecimal.ZERO);
|
|
|
|
+ purchaseDto.setDeductibleAmount(BigDecimal.ZERO);
|
|
|
|
+ purchaseDto.setPaymentStatus(StatusConstant.NO);
|
|
this.save(purchaseDto);
|
|
this.save(purchaseDto);
|
|
|
|
+
|
|
|
|
+ List<PurchaseBom> purchaseBomList = purchaseDto.getPurchaseBomList();
|
|
|
|
+ purchaseBomList.forEach(item -> {
|
|
|
|
+ item.setPurchaseId(purchaseDto.getId());
|
|
|
|
+ item.setReturnQuantity(BigDecimal.ZERO);
|
|
|
|
+ item.setPaidAmount(BigDecimal.ZERO);
|
|
|
|
+ });
|
|
|
|
+ purchaseBomService.saveBatch(purchaseBomList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void edit(PurchaseDto purchaseDto) {
|
|
public void edit(PurchaseDto purchaseDto) {
|
|
this.updateById(purchaseDto);
|
|
this.updateById(purchaseDto);
|
|
|
|
+
|
|
|
|
+ List<PurchaseBom> purchaseBomList = purchaseDto.getPurchaseBomList();
|
|
|
|
+ purchaseBomList.forEach(item -> item.setPurchaseId(purchaseDto.getId()));
|
|
|
|
+ purchaseBomService.editLinked(purchaseBomList, PurchaseBom::getPurchaseId, purchaseDto.getId());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void delete(Long id) {
|
|
public void delete(Long id) {
|
|
this.removeById(id);
|
|
this.removeById(id);
|
|
|
|
+ purchaseBomService.remove(q -> q.eq(PurchaseBom::getPurchaseId, id));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|