Bladeren bron

BUG修护

caozj 2 jaren geleden
bovenliggende
commit
212412da7e
17 gewijzigde bestanden met toevoegingen van 281 en 65 verwijderingen
  1. 9 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/purchase/PurchaseDetailMapper.java
  2. 7 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseDetailService.java
  3. 10 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseDetailServiceImpl.java
  4. 20 0
      hx-purchase/src/main/resources/mapper/purchase/PurchaseDetailMapper.xml
  5. 0 8
      hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java
  6. 17 0
      hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractProductController.java
  7. 15 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java
  8. 4 0
      hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/Documents.java
  9. 0 8
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractMapper.java
  10. 17 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java
  11. 15 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java
  12. 0 8
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java
  13. 67 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java
  14. 1 10
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java
  15. 56 8
      hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsServiceImpl.java
  16. 2 23
      hx-sale/src/main/resources/mapper/contract/ContractMapper.xml
  17. 41 0
      hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

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

@@ -31,4 +31,13 @@ public interface PurchaseDetailMapper extends BaseMapper<PurchaseDetail> {
      * @return
      */
     List<PurchaseDetailVo> getSumCountInDataResourceId(@Param("dataResourceIds")List<Long> dataResourceIds);
+
+
+    /**
+     * 获取外销合同总采购量审批通过的
+     * @param dataResourceIds
+     * @return
+     */
+    List<PurchaseDetailVo> getSumCountInDataResourceIds(@Param("dataResourceIds")List<Long> dataResourceIds);
+
 }

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

@@ -51,4 +51,11 @@ public interface PurchaseDetailService extends BaseService<PurchaseDetail> {
      */
     List<PurchaseDetailVo> getSumCountInDataResourceId(List<Long> dataResourceIds);
 
+    /**
+     * 获取外销合同总采购量审批通过的
+     * @return
+     */
+    List<PurchaseDetailVo> getSumCountInDataResourceIds(List<Long> dataResourceIds);
+
+
 }

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

@@ -73,4 +73,14 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
         return baseMapper.getSumCountInDataResourceId(dataResourceIds);
     }
 
+    /**
+     * 获取外销合同总采购量审批通过的
+     * @param dataResourceIds
+     * @return
+     */
+    @Override
+    public List<PurchaseDetailVo> getSumCountInDataResourceIds(List<Long> dataResourceIds) {
+        return baseMapper.getSumCountInDataResourceIds(dataResourceIds);
+    }
+
 }

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

@@ -36,4 +36,24 @@
         GROUP BY
             data_resource_id
     </select>
+    <select id="getSumCountInDataResourceIds" resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
+        SELECT
+            sum( t1.count ) AS sumCount,
+            t1.data_resource_id
+        FROM
+            purchase_detail t1
+        LEFT JOIN purchase t2 ON t1.purchase_id = t2.id
+        <where>
+            t1.data_resource = 1
+            AND t2.`purchase_status` &gt;= 30
+            AND t2.purchase_status &lt; 88
+            <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>
+        </where>
+        GROUP BY
+            data_resource_id
+    </select>
 </mapper>

+ 0 - 8
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractController.java

@@ -78,14 +78,6 @@ public class ContractController {
     }
 
     /**
-     * 根据合同ID和客户ID查询未包装的产品
-     */
-    @GetMapping("/getNoPackContractProductById")
-    public List<ContractVo> getNoPackContractProductById(@RequestParam("customerId")String customerId,@RequestParam("contractId")String contractId) {
-        return contractService.getNoPackContractProductById(customerId, contractId);
-    }
-
-    /**
      * 根据合同id集合查询合同列表
      */
     @PostMapping("/getByIds")

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractProductController.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.controller.contract;
 
+import com.fjhx.sale.entity.contract.vo.ContractVo;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
@@ -9,6 +10,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.sale.service.contract.ContractProductService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -32,6 +35,20 @@ public class ContractProductController {
     public Page<ContractProductVo> page(@RequestBody ContractProductSelectDto dto) {
         return contractProductService.getPage(dto);
     }
+    /**
+     * 根据合同ID和客户ID查询未包装的产品
+     */
+    @GetMapping("/getNoPackContractProductById")
+    public List<ContractProductVo> getNoPackContractProductById(@RequestParam("customerId")String customerId, @RequestParam("contractIds")String contractIds) {
+        return contractProductService.getNoPackContractProductById(customerId, contractIds);
+    }
+    /**
+     * 外销合同-产品ID集合查询产品
+     */
+    @PostMapping("/getListDetail")
+    public List<ContractProductVo> getListDetail(@RequestBody List<Long> ids) {
+        return contractProductService.getListDetail(ids);
+    }
 
     /**
      * 外销合同-产品明细

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

@@ -75,4 +75,19 @@ public class ContractProductVo extends ContractProduct {
      * 所属分类id
      */
     private Long productCategoryId;
+
+    /**
+     * 合同产品数量
+     */
+    private BigDecimal cpQuantity;
+
+    /**
+     * 已包装数量
+     */
+    private BigDecimal sumPackQuantity;
+
+    /**
+     * 已采购数
+     */
+    private BigDecimal sumPurchaseCount;
 }

+ 4 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/documents/po/Documents.java

@@ -34,4 +34,8 @@ public class Documents extends BasePo {
      */
     private String countryId;
 
+    /**
+     * 包装出货主合同表ID
+     */
+    private Long packShipmentId;
 }

+ 0 - 8
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractMapper.java

@@ -32,12 +32,4 @@ public interface ContractMapper extends BaseMapper<Contract> {
      */
     List<ContractVo> getNoPackContractByCustomerId(@Param("customerId")String customerId);
 
-
-    /**
-     * 根据合同ID和客户ID查询未包装的产品
-     * @param customerId
-     * @param contractId
-     * @return
-     */
-    List<ContractVo> getNoPackContractProductById(@Param("customerId")String customerId,@Param("contractId")String contractId);
 }

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java

@@ -4,9 +4,12 @@ import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.entity.contract.vo.ContractVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -23,4 +26,18 @@ public interface ContractProductMapper extends BaseMapper<ContractProduct> {
      */
     Page<ContractProductVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractProduct> wrapper);
 
+    /**
+     * 根据合同产品ID集合查询合同产品
+     * @param ids
+     * @return
+     */
+    List<ContractProductVo> getListByIds(@Param("ew") IWrapper<ContractProduct> wrapper);
+
+    /**
+     * 根据合同ID和客户ID查询未包装的产品
+     * @param customerId
+     * @param contractId
+     * @return
+     */
+    List<ContractProductVo> getNoPackContractProductById(@Param("customerId")String customerId, @Param("contractIds")List<String> contractId);
 }

+ 15 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java

@@ -1,12 +1,15 @@
 package com.fjhx.sale.service.contract;
 
 import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.contract.vo.ContractVo;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.contract.dto.ContractProductSelectDto;
 import com.fjhx.sale.entity.contract.dto.ContractProductDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -24,6 +27,11 @@ public interface ContractProductService extends BaseService<ContractProduct> {
     Page<ContractProductVo> getPage(ContractProductSelectDto dto);
 
     /**
+     * 外销合同-根据多个明细ID集合查询合同产品
+     */
+    List<ContractProductVo> getListDetail(List<Long> ids);
+
+    /**
      * 外销合同-产品明细
      */
     ContractProductVo detail(Long id);
@@ -43,4 +51,11 @@ public interface ContractProductService extends BaseService<ContractProduct> {
      */
     void delete(Long id);
 
+    /**
+     * 根据合同ID和客户ID查询未包装的产品
+     * @param customerId
+     * @return
+     */
+    List<ContractProductVo> getNoPackContractProductById(String customerId, String contractIds);
+
 }

+ 0 - 8
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractService.java

@@ -54,14 +54,6 @@ public interface ContractService extends BaseService<Contract> {
     List<ContractVo> getNoPackContractByCustomerId(String customerId);
 
     /**
-     * 根据合同ID和客户ID查询未包装的产品
-     * @param customerId
-     * @return
-     */
-    List<ContractVo> getNoPackContractProductById(String customerId, String contractId);
-
-
-    /**
      * 根据合同ID集合查询合同
      */
     List<Contract> getByIds(List<Long> ids);

+ 67 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -7,6 +7,7 @@ import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
 import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseDataResourceEnum;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
@@ -16,8 +17,10 @@ import com.fjhx.sale.entity.contract.vo.ContractVo;
 import com.fjhx.sale.mapper.contract.ContractProductMapper;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.obs.services.internal.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.SqlField;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,6 +31,7 @@ import com.fjhx.sale.entity.contract.dto.ContractProductDto;
 import cn.hutool.core.bean.BeanUtil;
 
 import java.math.BigDecimal;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -49,6 +53,9 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     @Autowired
     private ProductClassifyService productClassifyService;
+
+    @Autowired
+    private PurchaseDetailService purchaseDetailService;
     /**
      * 分页
      * @param dto
@@ -81,6 +88,66 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         }
         return page;
     }
+    /**
+     * 根据合同ID和客户ID查询未包装的产品
+     * @param customerId
+     * @return
+     */
+    @Override
+    public List<ContractProductVo> getNoPackContractProductById(String customerId,String contractIds) {
+        List<ContractProductVo> list = baseMapper.getNoPackContractProductById(customerId, Arrays.asList(contractIds.split(",")));
+        // 赋值产品属性
+        productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
+            item.setProductCode(product.getCode());
+            item.setProductUnit(product.getUnit());
+            item.setProductType(product.getType());
+            item.setProductName(product.getName());
+            item.setProductSpec(product.getSpec());
+            item.setProductCategoryId(product.getProductClassifyId());
+        });
+        // 赋值产品分类名称
+        productClassifyService.attributeAssign(list, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
+            item.setProductCategory(productClassify.getName());
+        });
+        return list;
+    }
+    /**
+     * 根据合同产品IDS查询合同产品
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<ContractProductVo> getListDetail(List<Long> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            throw new ServiceException("参数异常");
+        }
+        IWrapper<ContractProduct> wrapper = getWrapper();
+        wrapper.in("t1",ContractProduct::getId,ids);
+        List<ContractProductVo> list = baseMapper.getListByIds(wrapper);
+        if(CollectionUtils.isNotEmpty(list)){
+            List<PurchaseDetailVo> vo = purchaseDetailService.getSumCountInDataResourceIds(ids);
+            Map<Long,BigDecimal> voMap = vo.stream().collect(Collectors.toMap(PurchaseDetailVo::getDataResourceId,PurchaseDetailVo::getSumCount));
+            for(ContractProductVo c:list){
+                if(MapUtils.isNotEmpty(voMap)){
+                    c.setSumPurchaseCount(voMap.getOrDefault(c.getId(),BigDecimal.ZERO));
+                }
+            }
+            // 赋值产品属性
+            productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
+                item.setProductCode(product.getCode());
+                item.setProductUnit(product.getUnit());
+                item.setProductType(product.getType());
+                item.setProductName(product.getName());
+                item.setProductSpec(product.getSpec());
+                item.setProductCategoryId(product.getProductClassifyId());
+            });
+            // 赋值产品分类名称
+            productClassifyService.attributeAssign(list, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
+                item.setProductCategory(productClassify.getName());
+            });
+        }
+        return list;
+    }
 
     @Override
     public ContractProductVo detail(Long id) {

+ 1 - 10
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -24,6 +24,7 @@ import com.fjhx.sale.entity.contract.po.Contract;
 import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.contract.vo.ContractDocumentaryVo;
 import com.fjhx.sale.entity.contract.vo.ContractPdfInfoVo;
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.contract.vo.ContractVo;
 import com.fjhx.sale.mapper.contract.ContractMapper;
 import com.fjhx.sale.service.contract.ContractProductService;
@@ -152,16 +153,6 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
     }
 
     /**
-     * 根据合同ID和客户ID查询未包装的产品
-     * @param customerId
-     * @return
-     */
-    @Override
-    public List<ContractVo> getNoPackContractProductById(String customerId,String contractId) {
-        return baseMapper.getNoPackContractProductById(customerId,contractId);
-    }
-
-    /**
      * 根据合同id集合查询合同列表
      *
      * @param ids

+ 56 - 8
hx-sale/src/main/java/com/fjhx/sale/service/documents/impl/DocumentsServiceImpl.java

@@ -7,16 +7,23 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.corporation.po.Corporation;
 import com.fjhx.common.service.corporation.CorporationService;
+import com.fjhx.customer.entity.customer.po.Customer;
+import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.sale.entity.contract.po.Contract;
+import com.fjhx.sale.entity.contract.vo.ContractVo;
 import com.fjhx.sale.entity.documents.po.Documents;
 import com.fjhx.sale.entity.documents.po.DocumentsProduct;
 import com.fjhx.sale.entity.documents.po.DocumentsTransport;
+import com.fjhx.sale.entity.pack.po.PackDetail;
+import com.fjhx.sale.entity.pack.po.PackShipment;
 import com.fjhx.sale.mapper.documents.DocumentsMapper;
 import com.fjhx.sale.service.contract.ContractService;
 import com.fjhx.sale.service.documents.DocumentsProductService;
 import com.fjhx.sale.service.documents.DocumentsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.sale.service.documents.DocumentsTransportService;
+import com.fjhx.sale.service.pack.PackDetailService;
+import com.fjhx.sale.service.pack.PackShipmentService;
 import com.obs.services.internal.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -27,9 +34,9 @@ import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.fjhx.sale.entity.documents.dto.DocumentsDto;
 import cn.hutool.core.bean.BeanUtil;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -50,11 +57,22 @@ public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents
     private ContractService contractService;
 
     @Autowired
+    private PackDetailService packDetailService;
+
+    @Autowired
     private DocumentsTransportService documentsTransportService;
 
     @Autowired
     private CorporationService corporationService;
 
+    @Autowired
+    private PackShipmentService packShipmentService;
+
+    @Autowired
+    private CustomerService customerService;
+
+    private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy", Locale.ENGLISH);
+
     /**
      * 单证表分页
      */
@@ -137,14 +155,44 @@ public class DocumentsServiceImpl extends ServiceImpl<DocumentsMapper, Documents
         if(ObjectUtil.isNotEmpty(documents)){
             throw new ServiceException("单证不存在");
         }
-        //查询单证货物
-        List<DocumentsProduct> documentsProducts = documentsProductService.list(Wrappers.<DocumentsProduct>query().lambda().eq(DocumentsProduct::getDocumentsId,documents.getId()));
         //查询合同
         Contract contract = contractService.getById(documents.getContractId());
+        if(ObjectUtil.isEmpty(contract)){
+            throw new ServiceException("该单证合同不存在");
+        }
+        ContractVo contractVo = BeanUtil.toBean(contract, ContractVo.class);
+        //查询买方
+        Customer customer = customerService.getById(contractVo.getBuyCorporationId());
+        //查询卖方
+        Corporation corporation = corporationService.getById(contractVo.getSellCorporationId());
+        //查询单证货物
+        List<DocumentsProduct> documentsProducts = documentsProductService.list(Wrappers.<DocumentsProduct>query().lambda().eq(DocumentsProduct::getDocumentsId,documents.getId()));
+        //查询包装出货主合同
+        PackShipment packShipment = packShipmentService.getById(documents.getPackShipmentId());
+        //装箱单
+        List<PackDetail> packDetailList = new ArrayList<>();
+        //总毛重
+        BigDecimal sumRoughWeight = BigDecimal.ZERO;
+        //总净重
+        BigDecimal sumNetWeight = BigDecimal.ZERO;
+        //总体积
+        BigDecimal sumBomVolume = BigDecimal.ZERO;
+        if(ObjectUtil.isNotEmpty(packShipment)){//查询装箱单
+            packDetailList = packDetailService.list(Wrappers.<PackDetail>query().lambda().in(PackDetail::getId, Arrays.asList(packShipment.getPackDetailIds())));
+            sumRoughWeight = packDetailList.stream().map(PackDetail::getRoughWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
+            sumNetWeight = packDetailList.stream().map(PackDetail::getNetWeight).reduce(BigDecimal.ZERO,BigDecimal::add);
+            sumBomVolume = packDetailList.stream().map(PackDetail::getBomVolume).reduce(BigDecimal.ZERO,BigDecimal::add);
+        }
+        map.put("contract",contract);//合同信息
+        map.put("date",sdf.format(contract.getCreateTime()));//日期
         map.put("documents",documents);//单证信息
-        map.put("documents",documentsProducts);//单证信息货物
-
-
+        map.put("documentsProducts",documentsProducts);//单证信息货物
+        map.put("packDetailList",packDetailList);//单证信息货物
+        map.put("sumRoughWeight",sumRoughWeight);//总毛重
+        map.put("sumNetWeight",sumNetWeight);//总净重
+        map.put("sumBomVolume",sumBomVolume);//总体积
+        map.put("customer",customer);//买方信息
+        map.put("corporation",corporation);//卖方信息
 
         return null;
     }

+ 2 - 23
hx-sale/src/main/resources/mapper/contract/ContractMapper.xml

@@ -28,30 +28,9 @@
             ) t1
         WHERE t1.sumPackQuantity &lt; t1.cpQuantity
         AND t1.`status` &gt;=30
-        AND t1.`status` &lt;999
+        AND t1.`status` &lt;99
         GROUP BY t1.id
     </select>
 
-    <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractVo">
-        SELECT
-            *
-        FROM
-            (
-                SELECT
-                    t1.*,
-                    t2.quantity AS cpQuantity,
-                    t2.id AS contractProductId,
-                    ( SELECT IFNULL( SUM( quantity ), 0 ) FROM pack_detail_product WHERE contract_product_id = t2.id ) AS sumPackQuantity
-                FROM
-                    contract t1
-                LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
-                <where>
-                    <if test="customerId neq null and customerId neq '' ">
-                        buy_corporation_id = #{customerId}
-                    </if>
-                </where>
-            ) t1
-        WHERE t1.sumPackQuantity &lt; t1.cpQuantity
-          AND t1.id = #{contractId}
-    </select>
+
 </mapper>

+ 41 - 0
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -16,5 +16,46 @@
         LEFT JOIN contract t2 ON t1.contract_id = t2.id
             ${ew.customSqlSegment}
     </select>
+    <select id="getListByIds" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        SELECT
+            t1.id,
+            t1.contract_id,
+            t1.product_id,
+            t2.`code` AS contractCode,
+            t2.user_name AS userName,
+            t2.version AS contractVersion,
+            t1.expend_quantity expendQuantity
+        FROM
+            contract_product t1
+        LEFT JOIN contract t2 ON t1.contract_id = t2.id
+            ${ew.customSqlSegment}
+    </select>
 
+    <select id="getNoPackContractProductById" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        SELECT
+        *
+        FROM
+        (
+        SELECT
+        t1.*,
+        t1.`code` AS contractCode,
+        t2.quantity AS cpQuantity,
+        t2.id AS contractProductId,
+        ( SELECT IFNULL( SUM( quantity ), 0 ) FROM pack_detail_product WHERE contract_product_id = t2.id ) AS sumPackQuantity
+        FROM
+        contract t1
+        LEFT JOIN contract_product t2 ON t1.id = t2.contract_id
+        <where>
+            <if test="customerId neq null and customerId neq '' ">
+                buy_corporation_id = #{customerId}
+            </if>
+        </where>
+        ) t1
+        WHERE t1.sumPackQuantity &lt; t1.cpQuantity
+        <if test="contractIds neq null and contractIds.size() > 0">
+            <foreach collection="contractIds" item="contractId" open="AND t1.id IN (" separator="," close=")">
+                #{contractId}
+            </foreach>
+        </if>
+    </select>
 </mapper>