caozj 2 роки тому
батько
коміт
cb05999189

+ 3 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalController.java

@@ -1,5 +1,7 @@
 package com.fjhx.purchase.controller.arrival;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.arrival.po.Arrival;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -19,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author 
  * @since 2023-04-07
  */
+@DS(SourceConstant.PURCHASE)
 @RestController
 @RequestMapping("/arrival")
 public class ArrivalController {

+ 7 - 27
hx-purchase/src/main/java/com/fjhx/purchase/controller/arrival/ArrivalDetailController.java

@@ -1,5 +1,7 @@
 package com.fjhx.purchase.controller.arrival;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
@@ -9,6 +11,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -18,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author 
  * @since 2023-04-07
  */
+@DS(SourceConstant.PURCHASE)
 @RestController
 @RequestMapping("/arrivalDetail")
 public class ArrivalDetailController {
@@ -37,32 +42,7 @@ public class ArrivalDetailController {
      * 到货明细单明细
      */
     @PostMapping("/detail")
-    public ArrivalDetailVo detail(@RequestBody BaseSelectDto dto) {
-        return arrivalDetailService.detail(dto.getId());
-    }
-
-    /**
-     * 到货明细单新增
-     */
-    @PostMapping("/add")
-    public void add(@RequestBody ArrivalDetailDto arrivalDetailDto) {
-        arrivalDetailService.add(arrivalDetailDto);
-    }
-
-    /**
-     * 到货明细单编辑
-     */
-    @PostMapping("/edit")
-    public void edit(@RequestBody ArrivalDetailDto arrivalDetailDto) {
-        arrivalDetailService.edit(arrivalDetailDto);
+    public List<ArrivalDetailVo> detail(@RequestBody ArrivalDetailSelectDto dto) {
+        return arrivalDetailService.detail(dto.getIds());
     }
-
-    /**
-     * 到货明细单删除
-     */
-    @PostMapping("/delete")
-    public void delete(@RequestBody BaseSelectDto dto) {
-        arrivalDetailService.delete(dto.getId());
-    }
-
 }

+ 10 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/dto/ArrivalDetailSelectDto.java

@@ -4,6 +4,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 到货明细单列表查询入参实体
  *
@@ -13,5 +15,13 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ArrivalDetailSelectDto extends BaseSelectDto {
+    /**
+     * 质检状态
+     */
+    private String status;
 
+    /**
+     * 到货明细单ID
+     */
+    private List<Long> ids;
 }

+ 45 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/arrival/vo/ArrivalDetailVo.java

@@ -1,5 +1,6 @@
 package com.fjhx.purchase.entity.arrival.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
 import lombok.Getter;
 import lombok.Setter;
@@ -14,4 +15,48 @@ import lombok.Setter;
 @Setter
 public class ArrivalDetailVo extends ArrivalDetail {
 
+    /**
+     * 到货单编码
+     */
+    private String code;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 供应商名称
+     */
+    private String supplyName;
+
+    /**
+     * 货品类型
+     */
+    private Integer productType;
+
+    /**
+     * 所属分类
+     */
+    private String productCategory;
+
+    /**
+     * 货品编码
+     */
+    private String productCode;
+
+    /**
+     * 货品名称
+     */
+    private String productName;
+
+    /**
+     * 单位
+     */
+    private String productUnit;
+
+    /**
+     * 货品规格型号
+     */
+    private String productSpec;
 }

+ 0 - 4
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/dto/PurchaseDetailSelectDto.java

@@ -14,8 +14,4 @@ import lombok.Setter;
 @Setter
 public class PurchaseDetailSelectDto extends BaseSelectDto {
 
-    /**
-     * 质检状态
-     */
-    private String status;
 }

+ 3 - 2
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/ArrivalDetailService.java

@@ -9,6 +9,7 @@ import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 
 /**
@@ -27,9 +28,9 @@ public interface ArrivalDetailService extends BaseService<ArrivalDetail> {
     Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto);
 
     /**
-     * 到货明细单明细
+     * 到货明细单明细--可传多个ID
      */
-    ArrivalDetailVo detail(Long id);
+    List<ArrivalDetailVo> detail(List<Long> ids);
 
     /**
      * 到货明细单新增

+ 91 - 8
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalDetailServiceImpl.java

@@ -1,18 +1,34 @@
 package com.fjhx.purchase.service.arrival.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
+import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
+import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.ruoyi.common.utils.StringUtils;
+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;
-import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
-import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
 import cn.hutool.core.bean.BeanUtil;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -23,22 +39,89 @@ import java.math.BigDecimal;
  * @author 
  * @since 2023-04-07
  */
+@DS(SourceConstant.PURCHASE)
 @Service
 public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, ArrivalDetail> implements ArrivalDetailService {
 
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
     @Override
     public Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto) {
         IWrapper<ArrivalDetail> wrapper = getWrapper();
-        wrapper.orderByDesc("ad", ArrivalDetail::getId);
+        if(StringUtils.isNotEmpty(dto.getStatus())){
+            wrapper.eq("t1", PurchaseDetail::getStatus,dto.getStatus());
+        }
+        wrapper.orderByDesc("t1", ArrivalDetail::getCreateTime);
         Page<ArrivalDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ArrivalDetailVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            //查询供应商
+            List<Long> supplyIds = list.stream().map(ArrivalDetailVo::getSupplyId).collect(Collectors.toList());
+            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
+            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
+            if(MapUtils.isNotEmpty(supplyMap)){
+                for(ArrivalDetailVo p:list){
+                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
+                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
+                }
+            }
+            //查询产品
+            List<Long> productIds = list.stream().map(ArrivalDetailVo::getBussinessId).collect(Collectors.toList());
+            List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
+            Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
+            if(MapUtils.isNotEmpty(productMap)) {
+                for(ArrivalDetailVo s:list){
+                    ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
+                    s.setProductCategory(p.getClassifyName());
+                    s.setProductCode(p.getCode());
+                    s.setProductUnit(p.getUnit());
+                    s.setProductType(p.getType());
+                    s.setProductName(p.getName());
+                    s.setProductSpec(p.getSpec());
+                }
+            }
+        }
         return page;
     }
 
+    /**
+     * 详情--
+     * @param ids
+     * @return
+     */
     @Override
-    public ArrivalDetailVo detail(Long id) {
-        ArrivalDetail ArrivalDetail = this.getById(id);
-        ArrivalDetailVo result = BeanUtil.toBean(ArrivalDetail, ArrivalDetailVo.class);
-        return result;
+    public List<ArrivalDetailVo> detail(List<Long>  ids) {
+        List<ArrivalDetail> arrivalDetailList = this.list(Wrappers.<ArrivalDetail>query().lambda().in(ArrivalDetail::getId,ids));
+        List<ArrivalDetailVo> results = new ArrayList<>();
+        //查询产品
+        List<Long> productIds = arrivalDetailList.stream().map(ArrivalDetail::getBussinessId).collect(Collectors.toList());
+        List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
+        Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
+        if(MapUtils.isNotEmpty(productMap)) {
+            for(ArrivalDetail s:arrivalDetailList){
+                //查询出当前这款到货明细的质检总数
+
+                ArrivalDetailVo result = BeanUtil.toBean(s, ArrivalDetailVo.class);
+                ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
+                result.setProductCategory(p.getClassifyName());
+                result.setProductCode(p.getCode());
+                result.setProductUnit(p.getUnit());
+                result.setProductType(p.getType());
+                result.setProductName(p.getName());
+                result.setProductSpec(p.getSpec());
+                results.add(result);
+            }
+        }
+        return results;
     }
 
     @Override

+ 3 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/arrival/impl/ArrivalServiceImpl.java

@@ -1,6 +1,8 @@
 package com.fjhx.purchase.service.arrival.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.purchase.entity.arrival.po.Arrival;
 import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
@@ -38,6 +40,7 @@ import java.util.List;
  * @author 
  * @since 2023-04-07
  */
+@DS(SourceConstant.PURCHASE)
 @Service
 public class ArrivalServiceImpl extends ServiceImpl<ArrivalMapper, Arrival> implements ArrivalService {
 

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

@@ -33,9 +33,6 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
     @Override
     public Page<PurchaseDetailVo> getPage(PurchaseDetailSelectDto dto) {
         IWrapper<PurchaseDetail> wrapper = getWrapper();
-        if(StringUtils.isNotEmpty(dto.getStatus())){
-            wrapper.eq("pd",PurchaseDetail::getStatus,dto.getStatus());
-        }
         wrapper.orderByDesc("pd", PurchaseDetail::getId);
         Page<PurchaseDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;

+ 7 - 14
hx-purchase/src/main/resources/mapper/arrival/ArrivalDetailMapper.xml

@@ -2,20 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper">
     <select id="getPage" resultType="com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo">
-        select
-            ad.id,
-            ad.bussiness_id,
-            ad.arrival_id,
-            ad.count,
-            ad.status,
-            ad.qualified_count,
-            ad.no_qualified_count,
-            ad.remark,
-            ad.create_user,
-            ad.create_time,
-            ad.update_user,
-            ad.update_time
-        from arrival_detail ad
+        SELECT
+            t1.*,
+            t2.`code`,
+            t2.supply_id
+        FROM
+            arrival_detail t1
+        LEFT JOIN arrival t2 ON t1.arrival_id = t2.id
             ${ew.customSqlSegment}
     </select>