浏览代码

盘点明细排序调整,bom取合同最新价格

fgd 1 年之前
父节点
当前提交
079bf8e153

+ 1 - 0
sd-business/src/main/java/com/sd/business/service/check/impl/CheckBomServiceImpl.java

@@ -29,6 +29,7 @@ public class CheckBomServiceImpl extends ServiceImpl<CheckBomMapper, CheckBom> i
     public Page<CheckBomVo> getPage(CheckBomSelectDto dto) {
         IWrapper<CheckBom> wrapper = getWrapper();
         wrapper.orderByDesc("cb", CheckBom::getId);
+        wrapper.orderByDesc("cb", CheckBom::getStatus);
         wrapper.like("c", Check::getCode, dto.getCode());
         wrapper.like("bs", BomSpec::getCode, dto.getBomSpecCode());
         wrapper.like("bs", BomSpec::getName, dto.getBomSpecName());

+ 3 - 0
sd-business/src/main/java/com/sd/business/service/check/impl/CheckServiceImpl.java

@@ -57,6 +57,8 @@ import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static java.util.Comparator.comparing;
+
 
 /**
  * <p>
@@ -224,6 +226,7 @@ public class CheckServiceImpl extends ServiceImpl<CheckMapper, Check> implements
             }
             checkBomList.add(checkBom);
         }
+        checkBomList.sort(comparing(CheckBom::getStatus).reversed());
         vo.setCheckBomList(checkBomList);
 
         // 保存上传文件

+ 20 - 11
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseServiceImpl.java

@@ -265,12 +265,18 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     @Override
     public void updatePurchaseBomArrivalQuantity(Long purchaseId, List<InOutStorageBom> inOutStorageBomList) {
         for (InOutStorageBom inOutStorageBom : inOutStorageBomList) {
-            PurchaseBom bom = purchaseBomService.getOne(q -> q.eq(PurchaseBom::getPurchaseId, purchaseId).eq(PurchaseBom::getBomSpecId, inOutStorageBom.getBomSpecId()));
+            PurchaseBom bom = purchaseBomService.getOne(q -> q
+                    .eq(PurchaseBom::getPurchaseId, purchaseId)
+                    .eq(PurchaseBom::getBomSpecId, inOutStorageBom.getBomSpecId()));
             if (ObjectUtil.isNotEmpty(bom)) {
-                purchaseBomService.update(q -> q.eq(PurchaseBom::getId, bom.getId()).set(PurchaseBom::getArrivalQuantity, bom.getArrivalQuantity().add(inOutStorageBom.getQuantity())));
+                purchaseBomService.update(q -> q
+                        .eq(PurchaseBom::getId, bom.getId())
+                        .set(PurchaseBom::getArrivalQuantity, bom.getArrivalQuantity().add(inOutStorageBom.getQuantity())));
 
                 // 查询当前采购在途数量
-                long count = purchaseBomService.count(q -> q.eq(PurchaseBom::getPurchaseId, purchaseId).apply("(purchase_quantity + return_quantity) > arrival_quantity"));
+                long count = purchaseBomService.count(q -> q
+                        .eq(PurchaseBom::getPurchaseId, purchaseId)
+                        .apply("(purchase_quantity + return_quantity) > arrival_quantity"));
                 if (count == 0) {
                     // 如果为0,将入库状态设置为已完成
                     this.update(q -> q.set(Purchase::getStorageStatus, StatusConstant.YES)
@@ -292,7 +298,9 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
         this.updateById(purchase);
 
         // 合同终止将bom到货数量设置为采购数量
-        List<PurchaseBom> purchaseBomList = purchaseBomService.list(q -> q.eq(PurchaseBom::getPurchaseId, id).apply("(purchase_quantity + return_quantity) > arrival_quantity"));
+        List<PurchaseBom> purchaseBomList = purchaseBomService.list(q -> q
+                .eq(PurchaseBom::getPurchaseId, id)
+                .apply("(purchase_quantity + return_quantity) > arrival_quantity"));
         for (PurchaseBom purchaseBom : purchaseBomList) {
             purchaseBom.setArrivalQuantity(purchaseBom.getPurchaseQuantity().add(purchaseBom.getReturnQuantity()));
         }
@@ -388,15 +396,16 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
 
                 purchase.setTotalAmountIncludingTax(purchase.getTotalAmountIncludingTax().add(new BigDecimal(item.getTotalAmount())));
                 // 计算不含税总金额
-                BigDecimal totalAmountIncludingTax = purchaseBom.getUnitPrice().divide(new BigDecimal("1.1"), 4, RoundingMode.HALF_UP).multiply(purchaseBom.getPurchaseQuantity());
+                BigDecimal totalAmountIncludingTax = purchaseBom.getUnitPrice()
+                        .divide(new BigDecimal("1.1"), 4, RoundingMode.HALF_UP)
+                        .multiply(purchaseBom.getPurchaseQuantity());
                 purchase.setTotalAmountExcludingTax(purchase.getTotalAmountExcludingTax().add(totalAmountIncludingTax));
 
-                // bom成本价为空时,默认为采购bom单价
-                if (bomSpec.getCostPrice() == null) {
-                    bomSpec.setCostPrice(purchaseBom.getUnitPrice());
-                    bomSpec.setInternalSellingPrice(purchaseBom.getUnitPrice());
-                    bomSpecList.add(bomSpec);
-                }
+                // 保存最新的合同价格
+                bomSpec.setCostPrice(purchaseBom.getUnitPrice());
+                bomSpec.setInternalSellingPrice(purchaseBom.getUnitPrice());
+                bomSpecList.add(bomSpec);
+
                 return purchaseBom;
             }).collect(Collectors.toList());
             purchaseList.add(purchase);