瀏覽代碼

新增采购在途物料查询接口

fgd 1 年之前
父節點
當前提交
9f5419883a

+ 48 - 0
sd-business/src/main/java/com/sd/business/controller/purchase/PurchaseInTransitBomController.java

@@ -0,0 +1,48 @@
+package com.sd.business.controller.purchase;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.purchase.dto.PurchaseInTransitBomSelectDto;
+import com.sd.business.entity.purchase.vo.PurchaseInTransitBomVo;
+import com.sd.business.service.purchase.PurchaseBomService;
+import com.sd.framework.util.excel.util.ExcelUtil;
+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 javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 在途物料
+ */
+@RestController
+@RequestMapping("/purchaseInTransitBom")
+public class PurchaseInTransitBomController {
+    @Autowired
+    private PurchaseBomService purchaseBomService;
+
+
+    /**
+     * 在途物料列表
+     * @param dto
+     * @return
+     */
+    @PostMapping("/page")
+    public Page<PurchaseInTransitBomVo> page(@RequestBody PurchaseInTransitBomSelectDto dto) {
+        return purchaseBomService.getPurchaseInTransitBomPage(dto);
+    }
+
+
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, @RequestBody PurchaseInTransitBomSelectDto dto)
+    {
+        dto.setPageNum(1);
+        dto.setPageSize(9999999);
+        Page<PurchaseInTransitBomVo> page = purchaseBomService.getPurchaseInTransitBomPage(dto);
+        List<PurchaseInTransitBomVo> list = page.getRecords();
+        ExcelUtil.export(response,"在途物料", "在途物料数据", list, PurchaseInTransitBomVo.class);
+    }
+
+}

+ 28 - 0
sd-business/src/main/java/com/sd/business/entity/purchase/dto/PurchaseInTransitBomSelectDto.java

@@ -0,0 +1,28 @@
+package com.sd.business.entity.purchase.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购在途物料 列表查询入参实体
+ */
+@Getter
+@Setter
+public class PurchaseInTransitBomSelectDto extends BaseSelectDto {
+
+    /**
+     * 采购单号
+     */
+    private String purchaseCode;
+
+    /**
+     * bom规格编码
+     */
+    private String bomSpecCode;
+
+    /**
+     * bom规格名称
+     */
+    private String bomSpecName;
+}

+ 61 - 0
sd-business/src/main/java/com/sd/business/entity/purchase/vo/PurchaseInTransitBomVo.java

@@ -0,0 +1,61 @@
+package com.sd.business.entity.purchase.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Getter
+@Setter
+public class PurchaseInTransitBomVo {
+
+    /**
+     * bom规格编码
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品号", index = 0)
+    private String bomSpecCode;
+
+    /**
+     * bom规格名称
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "品名", index = 1)
+    private String bomSpecName;
+
+    /**
+     * 采购单号
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "采购单号", index = 2)
+    private String purchaseCode;
+
+    /**
+     * 供应商名称
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "供应商名称", index = 3)
+    private String supplierName;
+
+    /**
+     * 采购数量
+     */
+    @ExcelProperty(value = "采购数量", index = 4)
+    private BigDecimal purchaseQuantity;
+
+    /**
+     * 在途数量
+     */
+    @ExcelProperty(value = "在途数量", index = 5)
+    private BigDecimal inTransitQuantity;
+
+    /**
+     * 交付日期
+     */
+    @ColumnWidth(20)
+    @ExcelProperty(value = "交付日期", index = 6)
+    private Date deliveryDate;
+}

+ 5 - 0
sd-business/src/main/java/com/sd/business/mapper/purchase/PurchaseBomMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.purchase.po.PurchaseBom;
 import com.sd.business.entity.purchase.vo.PurchaseBomVo;
+import com.sd.business.entity.purchase.vo.PurchaseInTransitBomVo;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -23,4 +24,8 @@ public interface PurchaseBomMapper extends BaseMapper<PurchaseBom> {
      */
     Page<PurchaseBomVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<PurchaseBom> wrapper);
 
+    /**
+     * 采购在途物料bom分页
+     */
+    Page<PurchaseInTransitBomVo> getPurchaseInTransitBomPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<PurchaseInTransitBomVo> wrapper);
 }

+ 8 - 0
sd-business/src/main/java/com/sd/business/service/purchase/PurchaseBomService.java

@@ -3,8 +3,10 @@ package com.sd.business.service.purchase;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.service.BaseService;
 import com.sd.business.entity.purchase.dto.PurchaseBomSelectDto;
+import com.sd.business.entity.purchase.dto.PurchaseInTransitBomSelectDto;
 import com.sd.business.entity.purchase.po.PurchaseBom;
 import com.sd.business.entity.purchase.vo.PurchaseBomVo;
+import com.sd.business.entity.purchase.vo.PurchaseInTransitBomVo;
 
 
 /**
@@ -32,4 +34,10 @@ public interface PurchaseBomService extends BaseService<PurchaseBom> {
      */
     void delete(Long id);
 
+    /**
+     * 采购在途物料bom分页
+     * @param dto
+     * @return
+     */
+    Page<PurchaseInTransitBomVo> getPurchaseInTransitBomPage(PurchaseInTransitBomSelectDto dto);
 }

+ 14 - 0
sd-business/src/main/java/com/sd/business/service/purchase/impl/PurchaseBomServiceImpl.java

@@ -4,9 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.purchase.dto.PurchaseBomSelectDto;
+import com.sd.business.entity.purchase.dto.PurchaseInTransitBomSelectDto;
+import com.sd.business.entity.purchase.po.Purchase;
 import com.sd.business.entity.purchase.po.PurchaseBom;
 import com.sd.business.entity.purchase.vo.PurchaseBomVo;
+import com.sd.business.entity.purchase.vo.PurchaseInTransitBomVo;
 import com.sd.business.mapper.purchase.PurchaseBomMapper;
 import com.sd.business.service.purchase.PurchaseBomService;
 import org.springframework.stereotype.Service;
@@ -43,4 +47,14 @@ public class PurchaseBomServiceImpl extends ServiceImpl<PurchaseBomMapper, Purch
         this.removeById(id);
     }
 
+    @Override
+    public Page<PurchaseInTransitBomVo> getPurchaseInTransitBomPage(PurchaseInTransitBomSelectDto dto) {
+        IWrapper<PurchaseInTransitBomVo> wrapper = IWrapper.getWrapper();
+        wrapper.eq("p", Purchase::getCode, dto.getPurchaseCode());
+        wrapper.eq("bs", BomSpec::getCode, dto.getBomSpecCode());
+        wrapper.eq("bs", BomSpec::getName, dto.getBomSpecName());
+        wrapper.apply("pb.purchase_quantity > pb.arrival_quantity");
+        wrapper.orderByAsc("p", PurchaseInTransitBomVo::getDeliveryDate);
+        return this.baseMapper.getPurchaseInTransitBomPage(dto.getPage(), wrapper);
+    }
 }

+ 16 - 0
sd-business/src/main/resources/mapper/purchase/PurchaseBomMapper.xml

@@ -20,4 +20,20 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="getPurchaseInTransitBomPage" resultType="com.sd.business.entity.purchase.vo.PurchaseInTransitBomVo">
+        select
+            bs.code bomSpecCode,
+            bs.name bomSpecName,
+            p.code purchaseCode,
+            s.name supplierName,
+            pb.purchase_quantity,
+            (pb.purchase_quantity - pb.arrival_quantity) inTransitQuantity,
+            p.delivery_date
+        from
+            purchase_bom pb
+            LEFT JOIN purchase p on pb.purchase_id = p.id
+            LEFT JOIN bom_spec bs on pb.bom_spec_id = bs.id
+            LEFT JOIN supplier s on p.supplier_id = s.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>