瀏覽代碼

Merge remote-tracking branch 'origin/master'

caozj 2 年之前
父節點
當前提交
80fa437ccf
共有 17 個文件被更改,包括 270 次插入50 次删除
  1. 25 0
      hx-ehsd/src/main/java/com/fjhx/ehsd/controller/delivery/DeliveryController.java
  2. 2 2
      hx-item/src/main/java/com/fjhx/item/mapper/product/ProductInfoMapper.java
  3. 1 1
      hx-item/src/main/java/com/fjhx/item/service/product/ProductInfoService.java
  4. 2 2
      hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java
  5. 7 4
      hx-item/src/main/resources/mapper/product/ProductInfoMapper.xml
  6. 9 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java
  7. 27 35
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java
  8. 5 1
      hx-sale/src/main/java/com/fjhx/sale/controller/sample/SampleController.java
  9. 17 1
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java
  10. 8 1
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java
  11. 9 1
      hx-sale/src/main/java/com/fjhx/sale/mapper/sample/SampleMapper.java
  12. 5 1
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java
  13. 47 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java
  14. 8 0
      hx-sale/src/main/java/com/fjhx/sale/service/sample/SampleService.java
  15. 45 0
      hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java
  16. 27 0
      hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml
  17. 26 0
      hx-sale/src/main/resources/mapper/sample/SampleMapper.xml

+ 25 - 0
hx-ehsd/src/main/java/com/fjhx/ehsd/controller/delivery/DeliveryController.java

@@ -1,16 +1,22 @@
 package com.fjhx.ehsd.controller.delivery;
 
+import cn.hutool.http.server.SimpleServer;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.dto.ContractProductDto;
 import com.fjhx.sale.entity.contract.dto.ContractProductSelectDto;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
+import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.fjhx.sale.service.contract.ContractProductService;
+import com.fjhx.sale.service.sample.SampleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -27,6 +33,9 @@ public class DeliveryController {
     @Autowired
     private ContractProductService contractProductService;
 
+    @Autowired
+    private SampleService sampleService;
+
     /**
      * 交接单--分页
      */
@@ -35,4 +44,20 @@ public class DeliveryController {
         return contractProductService.getEHSDPage(dto);
     }
 
+    /**
+     * 合同交接单--分页
+     */
+    @PostMapping("/contractHandoverPage")
+    public Page<ContractProductVo> contractHandoverPage(@RequestBody ContractProductSelectDto dto) {
+        return contractProductService.contractHandoverPage(dto);
+    }
+
+    /**
+     * 样品交接单添加
+     */
+    @PostMapping("/sampleHandoverList")
+    public Page<ContractProductVo> sampleHandoverList(@RequestBody SampleSelectDto dto) {
+        return  sampleService.sampleHandoverList(dto);
+    }
+
 }

+ 2 - 2
hx-item/src/main/java/com/fjhx/item/mapper/product/ProductInfoMapper.java

@@ -3,7 +3,6 @@ package com.fjhx.item.mapper.product;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -36,9 +35,10 @@ public interface ProductInfoMapper extends BaseMapper<ProductInfo> {
 
     /**
      * 根据产品类型获取产品
+     *
      * @return
      */
-    List<ProductInfoVo> getListByProductType(@Param("productType") Integer productType);
+    List<ProductInfoVo> getListByProductType(@Param("productType") Integer productType, @Param("definition") Integer definition);
 
     /**
      * 产品类型排行(数据看板-产品分析页面)

+ 1 - 1
hx-item/src/main/java/com/fjhx/item/service/product/ProductInfoService.java

@@ -107,7 +107,7 @@ public interface ProductInfoService extends BaseService<ProductInfo> {
      *
      * @return
      */
-    List<ProductInfoVo> getListByProductType(Integer productType);
+    List<ProductInfoVo> getListByProductType(Integer productType, Integer definition);
 
     /**
      * excel导入

+ 2 - 2
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -510,8 +510,8 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
      * @return
      */
     @Override
-    public List<ProductInfoVo> getListByProductType(Integer productType) {
-        return baseMapper.getListByProductType(productType);
+    public List<ProductInfoVo> getListByProductType(Integer productType, Integer definition) {
+        return baseMapper.getListByProductType(productType, definition);
     }
 
     @Override

+ 7 - 4
hx-item/src/main/resources/mapper/product/ProductInfoMapper.xml

@@ -45,14 +45,17 @@
 
     <select id="getListByProductType" resultType="com.fjhx.item.entity.product.vo.ProductInfoVo">
         SELECT
-            t1.*,
-            t2.`name` AS classifyName
+        t1.*,
+        t2.`name` AS classifyName
         FROM
-            product_info t1
+        product_info t1
         LEFT JOIN product_classify t2 ON t1.product_classify_id = t2.id
         <where>
             <if test="productType neq null ">
-               t1.type = #{productType}
+                t1.type = #{productType}
+            </if>
+            <if test="definition neq null">
+                and t1.definition = #{definition}
             </if>
         </where>
     </select>

+ 9 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java

@@ -9,7 +9,7 @@ import java.util.List;
 /**
  * 申购单列表查询入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-03
  */
 @Getter
@@ -35,4 +35,12 @@ public class SubscribeDetailSelectDto extends BaseSelectDto {
      * 收货仓库id过滤
      */
     private Long receiptWarehouseId;
+
+    /**
+     * 定义
+     * 1产品
+     * 2物料
+     */
+    private Integer definition;
+
 }

+ 27 - 35
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -21,7 +21,6 @@ import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.obs.services.internal.ServiceException;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +31,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -62,50 +62,42 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
      */
     @Override
     public Page<SubscribeDetailVo> getPage(SubscribeDetailSelectDto dto) {
-        Map<Long, List<ProductInfoVo>> productMap;
-        List<Long> productIds = new ArrayList<>();
         IWrapper<SubscribeDetail> wrapper = getWrapper();
-        //搜索条件-----当产品数据量多得情况下会影响查询得速度。超过1000条mybatisplus在in查询得时候会报错
-        if (ObjectUtil.isNotEmpty(dto.getProductType())) {//如果类型存在带入类型查询
-            List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType());
-            if (CollectionUtils.isEmpty(productList)) {
-                return new Page<>();
-            } else {
-                productMap = productList.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
-                productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
-            }
-        } else {//不存在查所有
-            List<ProductInfoVo> productList = productInfoService.getListByProductType(null);
-            productMap = productList.stream().distinct().collect(Collectors.groupingBy(ProductInfoVo::getId));
-        }
         if (ObjectUtil.isNotEmpty(dto.getStatus())) {
             wrapper.in("t1", SubscribeDetail::getStatus, Arrays.asList(dto.getStatus().split(",")));
         }
-        if (CollectionUtils.isNotEmpty(productIds)) {
-            wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
-        }
-        if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
+
+        // 如果类型存在带入类型查询
+        List<ProductInfoVo> productList = productInfoService.getListByProductType(dto.getProductType(), dto.getDefinition());
+        if (ObjectUtil.isEmpty(productList)) {
+            return new Page<>();
         }
-        //维多利亚扩展根据到货仓库id过滤
+        List<Long> productIds = productList.stream().map(ProductInfoVo::getId).collect(Collectors.toList());
+        wrapper.in("t1", SubscribeDetail::getBussinessId, productIds);
+        wrapper.like("t2", Subscribe::getCode, dto.getKeyword());
+
+        // 维多利亚扩展根据到货仓库id过滤
         wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
         wrapper.orderByDesc("t1", SubscribeDetail::getCreateTime);
+
         Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         List<SubscribeDetailVo> list = page.getRecords();
-        if (CollectionUtils.isNotEmpty(list) && MapUtils.isNotEmpty(productMap)) {
-            for (SubscribeDetailVo s : list) {
-                List<ProductInfoVo> productInfos = productMap.getOrDefault(s.getBussinessId(), null);
-                if (ObjectUtil.isNotEmpty(productInfos)) {
-                    ProductInfoVo vo = productInfos.get(0);
-                    s.setProductCode(vo.getCode());
-                    s.setProductName(vo.getName());
-                    s.setProductType(vo.getType());
-                    s.setProductCategory(vo.getClassifyName());
-                    s.setProductUnit(vo.getUnit());
-                    s.setProductDefinition(vo.getDefinition());
-                }
-            }
+
+        if (list.size() == 0) {
+            return page;
         }
+
+        for (SubscribeDetailVo s : list) {
+            Map<Long, ProductInfoVo> productMap = productList.stream().collect(Collectors.toMap(ProductInfoVo::getId, Function.identity()));
+            ProductInfoVo productInfo = productMap.get(s.getBussinessId());
+            s.setProductCode(productInfo.getCode());
+            s.setProductName(productInfo.getName());
+            s.setProductType(productInfo.getType());
+            s.setProductCategory(productInfo.getClassifyName());
+            s.setProductUnit(productInfo.getUnit());
+            s.setProductDefinition(productInfo.getDefinition());
+        }
+
         return page;
     }
 

+ 5 - 1
hx-sale/src/main/java/com/fjhx/sale/controller/sample/SampleController.java

@@ -11,6 +11,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.sale.service.sample.SampleService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -68,11 +70,13 @@ public class SampleController {
     }
 
     /**
-     * 样品交接单
+     * 样品交接单添加
      */
     @PostMapping("/sampleHandover")
     public void sampleHandover(@RequestBody SampleDto dto) {
         sampleService.sampleHandover(dto);
     }
 
+
+
 }

+ 17 - 1
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java

@@ -5,11 +5,12 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 外销合同-产品列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-04-17
  */
 @Getter
@@ -100,4 +101,19 @@ public class ContractProductVo extends ContractProduct {
      * 合同到账时间
      */
     private String claimTime;
+
+    /**
+     * 合同到账时间
+     */
+    private Long buyCorporationId;
+
+    /**
+     * 交接单时间
+     */
+    private Date sampleTime;
+
+    /**
+     * 客户名称
+     */
+    private String buyCorporationName;
 }

+ 8 - 1
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java

@@ -15,7 +15,7 @@ import java.util.List;
  * 外销合同-产品 Mapper 接口
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-17
  */
 public interface ContractProductMapper extends BaseMapper<ContractProduct> {
@@ -48,4 +48,11 @@ public interface ContractProductMapper extends BaseMapper<ContractProduct> {
      */
     Page<ContractProductVo> getEHSDPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractProduct> wrapper);
 
+    /**
+     * 合同交接单
+     * @param page
+     * @param wrapper
+     * @return
+     */
+    Page<ContractProductVo> contractHandoverPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractProduct> wrapper);
 }

+ 9 - 1
hx-sale/src/main/java/com/fjhx/sale/mapper/sample/SampleMapper.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.mapper.sample;
 
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -13,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
  * 样品单表 Mapper 接口
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-05-05
  */
 public interface SampleMapper extends BaseMapper<Sample> {
@@ -23,4 +24,11 @@ public interface SampleMapper extends BaseMapper<Sample> {
      */
     Page<SampleVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Sample> wrapper);
 
+    /**
+     * 查询样品交接单列表
+     * @param page
+     * @param wrapper
+     * @return
+     */
+    Page<ContractProductVo> sampleHandoverList(@Param("page") Page<Object> page, @Param("ew") IWrapper<Sample> wrapper);
 }

+ 5 - 1
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java

@@ -15,7 +15,7 @@ import java.util.List;
  * 外销合同-产品 服务类
  * </p>
  *
- * @author 
+ * @author
  * @since 2023-04-17
  */
 public interface ContractProductService extends BaseService<ContractProduct> {
@@ -62,4 +62,8 @@ public interface ContractProductService extends BaseService<ContractProduct> {
      */
     Page<ContractProductVo> getEHSDPage(ContractProductSelectDto dto);
 
+    /**
+     * 合同交接单--分页
+     */
+    Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto);
 }

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

@@ -1,8 +1,12 @@
 package com.fjhx.sale.service.contract.impl;
 
 import cn.hutool.http.HttpRequest;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.enums.FlowStatusEnum;
+import com.fjhx.common.service.corporation.CorporationService;
+import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.item.service.product.ProductClassifyService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
@@ -57,6 +61,11 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
 
     @Autowired
     private PurchaseDetailService purchaseDetailService;
+
+    @Autowired
+    private CustomerService customerService;
+
+
     /**
      * 分页
      * @param dto
@@ -147,6 +156,40 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     }
 
     /**
+     * 合同交接单--分页
+     */
+    @Override
+    public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
+        IWrapper<ContractProduct> wrapper = getWrapper();
+        wrapper.orderByDesc("t1.ct");
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        }
+        wrapper.ge("t2.`status`",30);
+        wrapper.lt("t2.`status`",88);
+        wrapper.gt("t1.expend_quantity",0);
+        Page<ContractProductVo> page = this.baseMapper.contractHandoverPage(dto.getPage(), wrapper);
+
+        List<ContractProductVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            // 赋值产品属性
+            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());
+            });
+            // 赋值客户名称
+            customerService.attributeAssign(list, ContractProductVo::getBuyCorporationId, (item, corporation) -> {
+                item.setBuyCorporationName(corporation.getName());
+            });
+        }
+        return page;
+    }
+
+    /**
      * 根据合同产品IDS查询合同产品
      * @param ids
      * @return
@@ -167,6 +210,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
                     c.setSumPurchaseCount(voMap.getOrDefault(c.getId(),BigDecimal.ZERO));
                 }
             }
+
             // 赋值产品属性
             productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
                 item.setProductCode(product.getCode());
@@ -176,10 +220,13 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
                 item.setProductSpec(product.getSpec());
                 item.setProductCategoryId(product.getProductClassifyId());
             });
+
             // 赋值产品分类名称
             productClassifyService.attributeAssign(list, ContractProductVo::getProductCategoryId, (item, productClassify) -> {
                 item.setProductCategory(productClassify.getName());
             });
+
+
         }
         return list;
     }

+ 8 - 0
hx-sale/src/main/java/com/fjhx/sale/service/sample/SampleService.java

@@ -1,5 +1,6 @@
 package com.fjhx.sale.service.sample;
 
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,6 +8,8 @@ import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
 import com.fjhx.sale.entity.sample.dto.SampleDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -47,4 +50,9 @@ public interface SampleService extends BaseService<Sample> {
      * 样品交接单
      */
     void sampleHandover(SampleDto dto);
+
+    /**
+     * 样品交接单添加
+     */
+    Page<ContractProductVo> sampleHandoverList(SampleSelectDto dto);
 }

+ 45 - 0
hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java

@@ -1,14 +1,20 @@
 package com.fjhx.sale.service.sample.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.common.controller.corporation.CorporationController;
 import com.fjhx.common.enums.FlowStatusEnum;
+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.file.entity.FileInfoVo;
 import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.entity.sample.po.Sample;
 import com.fjhx.sale.mapper.sample.SampleMapper;
 import com.fjhx.sale.service.sample.SampleService;
@@ -45,6 +51,10 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
     @Autowired
     private CustomerService customerService;
 
+    @Autowired
+    private ProductInfoService productInfoService;
+
+
     /**
      * 分页
      *
@@ -134,4 +144,39 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
         ObsFileUtil.editFile(dto.getPackageFileList(),dto.getId(),2);
     }
 
+    /**
+     * 样品交接单添加
+     */
+    @Override
+    public Page<ContractProductVo> sampleHandoverList(SampleSelectDto dto) {
+        IWrapper<Sample> wrapper = getWrapper();
+        wrapper.orderByDesc("t1.ct");
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        }
+        wrapper.ge("t2.`status`",30);
+        wrapper.lt("t2.`status`",88);
+        wrapper.gt("t1.expend_quantity",0);
+        //查询样品交接单列表
+        Page<ContractProductVo> page = this.baseMapper.sampleHandoverList(dto.getPage(), wrapper);
+
+        List<ContractProductVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            // 赋值产品属性
+            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());
+            });
+            // 赋值客户名称
+            customerService.attributeAssign(list, ContractProductVo::getBuyCorporationId, (item, corporation) -> {
+                item.setBuyCorporationName(corporation.getName());
+            });
+        }
+        return page;
+    }
+
 }

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

@@ -102,4 +102,31 @@
             </foreach>
         </if>
     </select>
+    <select id="contractHandoverPage" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        SELECT
+            t1.create_time AS ct,
+            t1.id,
+            t1.contract_id,
+            t1.product_id,
+            t2.`code` AS `contractCode`,
+            t2.user_name AS userName,
+            t2.version AS contractVersion,
+            t2.buy_corporation_id buyCorporationId,
+            <!-- 待采购数量-->
+            t1.expend_quantity AS expendQuantity,
+            <!-- 交接单时间-->
+            t3.sampleTime,
+            <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
+            t2.update_time updateTime,
+
+            <!-- 合同到账时间-->
+            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
+        FROM
+            contract_product t1
+            LEFT JOIN contract t2 ON t1.contract_id = t2.id
+            <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
+            join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING MAX(create_time)) t3 on
+            t2.id = t3.business_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 26 - 0
hx-sale/src/main/resources/mapper/sample/SampleMapper.xml

@@ -8,4 +8,30 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="sampleHandoverList" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        SELECT
+            t1.create_time AS ct,
+            t1.id,
+            t1.sample_id,
+            t1.product_id,
+            t2.`code` AS `contractCode`,
+            t2.user_name AS userName,
+            t2.versions AS contractVersion,
+            t2.buy_corporation_id buyCorporationId,
+            <!-- 需要采购的合同数量-->
+            t1.expend_quantity AS expendQuantity,
+            <!-- 交接单时间-->
+            t3.sampleTime,
+            <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
+            t2.update_time updateTime,
+            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
+        FROM
+            sample_product t1
+            LEFT JOIN sample t2 ON t1.sample_id = t2.id
+            <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
+            join(SELECT business_id,create_time sampleTime from bytesailing_base.file_info GROUP BY business_id HAVING MAX(create_time)) t3 on
+            t2.id = t3.business_id
+        ${ew.customSqlSegment}
+    </select>
+
 </mapper>