Browse Source

交接单页面增加“已发起”数据列,展示已发起采购但未审批结束的数量统计

caozj 1 year ago
parent
commit
a72deedee9

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/purchase/PurchaseDetailMapper.java

@@ -46,4 +46,10 @@ public interface PurchaseDetailMapper extends BaseMapper<PurchaseDetail> {
      */
     List<PurchaseDetailVo> getPurchaseDetailList(@Param("ew") IWrapper<PurchaseDetail> wrapper);
 
+    /**
+     * 获取外销合同总采购量审批中的
+     * @param dataResourceIds
+     * @return
+     */
+    List<PurchaseDetailVo> getSumCountByDataResourceId(@Param("dataResourceIds") List<Long> dataResourceIds);
 }

+ 6 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseDetailService.java

@@ -57,5 +57,11 @@ public interface PurchaseDetailService extends BaseService<PurchaseDetail> {
      */
     List<PurchaseDetailVo> getSumCountInDataResourceIds(List<Long> dataResourceIds);
 
+    /**
+     * 获取外销合同总采购量审批中的
+     * @return
+     */
+    List<PurchaseDetailVo> getSumCountByDataResourceId(List<Long> dataResourceIds);
+
     List<PurchaseDetailVo> getPurchaseCountListBySubscribeDetailIds(List<Long> PurchaseDetailIds);
 }

+ 12 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseDetailServiceImpl.java

@@ -84,6 +84,18 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
         return baseMapper.getSumCountInDataResourceIds(dataResourceIds);
     }
 
+    /**
+     * 获取外销合同总采购量审批中的
+     *
+     * @param dataResourceIds
+     * @return
+     */
+    @Override
+    public List<PurchaseDetailVo> getSumCountByDataResourceId(List<Long> dataResourceIds) {
+        return baseMapper.getSumCountByDataResourceId(dataResourceIds);
+    }
+
+
     @Override
     public List<PurchaseDetailVo> getPurchaseCountListBySubscribeDetailIds(List<Long> subscribeDetailIds) {
         IWrapper<PurchaseDetail> wrapper = getWrapper();

+ 16 - 0
hx-purchase/src/main/resources/mapper/purchase/PurchaseDetailMapper.xml

@@ -59,6 +59,22 @@
         GROUP BY
         data_resource_id
     </select>
+    <select id="getSumCountByDataResourceId" resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
+        SELECT
+            SUM(t1.count),
+            t1.data_resource_id
+        FROM
+            purchase_detail t1
+        LEFT JOIN purchase t2 ON t1.purchase_id = t2.id
+        WHERE
+        t2.purchase_status =10
+        <if test="dataResourceIds neq null and dataResourceIds.size() > 0">
+            <foreach collection="dataResourceIds" item="dataResourceId" open="AND t1.data_resource_id IN ("
+                     separator="," close=")">
+                #{dataResourceId}
+            </foreach>
+        </if>
+    </select>
     <select id="getPurchaseDetailList" resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
         SELECT pd.*
         FROM purchase_detail pd

+ 4 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java

@@ -197,4 +197,8 @@ public class ContractProductVo extends ContractProduct {
      */
     private Long flowId;
 
+    /**
+     * 发起采购数量
+     */
+    private BigDecimal startPurchaseCount;
 }

+ 5 - 2
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -119,7 +119,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         wrapper.groupBy("t1.id");
         Page<ContractProductVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<ContractProductVo> list = page.getRecords();
-
+        List<Long> idList = list.stream().map(ContractProductVo::getId).collect(Collectors.toList());
         if (list.size() == 0) {
             return page;
         }
@@ -133,7 +133,10 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
             item.setProductSpec(product.getSpec());
             item.setProductCategoryId(product.getProductClassifyId());
         });
-
+        //赋值已发起采购数量
+        List<PurchaseDetailVo> purchaseDetailVoList = purchaseDetailService.getSumCountByDataResourceId(idList);
+        Map<Long,BigDecimal> pMap = purchaseDetailVoList.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumCount));
+        list.forEach(i -> i.setStartPurchaseCount(MapUtils.isNotEmpty(pMap)?BigDecimal.ZERO:pMap.getOrDefault(i.getId(),BigDecimal.ZERO)));
         // 赋值产品分类名称
         productClassifyService.attributeAssign(list, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
             item.setProductCategory(productClassify.getName());