Kaynağa Gözat

以销定采

changhaoning 2 yıl önce
ebeveyn
işleme
481f62dbc3

+ 21 - 0
src/main/java/com/dk/mdm/controller/sale/OrderItemController.java

@@ -1,8 +1,15 @@
 package com.dk.mdm.controller.sale;
 
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.sale.OrderItemQuery;
+import com.dk.mdm.model.response.sale.OrderItemResponse;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
@@ -21,4 +28,18 @@ public class OrderItemController{
     @Autowired
     private OrderItemService orderItemService;
 
+    /**
+     * @desc   : 以销定采查询销售订单接口(新建编辑使用)
+     * @date   : 2023/8/18 15:34
+     * @author : 寇珊珊
+     */
+    @ApiOperation(
+            value = "以销定采查询销售订单接口(新建编辑使用)",
+            notes = "以销定采查询销售订单接口(新建编辑使用)"
+    )
+    @PostMapping("purchase_based_on_sale_select_order")
+    public ResponseResultVO<PageList<OrderItemResponse>> purchaseBasedOnSaleSelectOrder(@RequestBody OrderItemQuery orderItemQuery) {
+        return orderItemService.purchaseBasedOnSaleSelectOrder(orderItemQuery);
+    }
+
 }

+ 15 - 0
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.java

@@ -64,5 +64,20 @@ public interface OrderItemMapper extends BaseMapper<OrderItem> {
      * @author : 寇珊珊
      */
     OrderItemResponse selectById(@Param("itemId") String itemId);
+
+    /**
+     * @desc   : 以销定采查询订单明细---web用
+     * @date   : 2023/8/23 15:43
+     * @author : 寇珊珊
+     */
+    List<OrderItemResponse> purchaseBasedOnSaleSelectByCond (OrderItemQuery orderItemQuery);
+
+
+    /**
+     * @desc   : 以销定采查询订单明细个数---web用
+     * @date   : 2023/8/23 15:43
+     * @author : 寇珊珊
+     */
+    Long  purchaseBasedOnSaleContByCond (OrderItemQuery orderItemQuery);
 }
 

+ 120 - 0
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml

@@ -62,6 +62,8 @@
                 <result column="remarks" property="remarks"/>
                 <result column="flg_valid" property="flgValid"/>
                 <result column="cp_id" property="cpId"/>
+                <result column="order_no" property="orderNo"/>
+                <result column="transferableQuantity" property="transferableQuantity"/>
     </resultMap>
 
     <!-- 通用条件列 -->
@@ -410,4 +412,122 @@
         and item_qty >=(out_qty + outing_qty)
     </update>
 
+    <!-- 通用条件列 -->
+    <sql id="Condition_pur">
+        <where>
+            <if test="orderNo != null">
+                AND tpo.order_no like concat('%', my_ex.likequery(#{orderNo}) , '%')
+            </if>
+            <if test="orderId != null and orderId != ''">
+                AND t.order_id = #{orderId}::uuid
+            </if>
+            <if test="itemIndex != null">
+                AND t.item_index = #{itemIndex}
+            </if>
+            <if test="skuId != null and skuId != ''">
+                AND t.sku_id = #{skuId}
+            </if>
+            <if test="itemQty != null">
+                AND t.item_qty = #{itemQty}
+            </if>
+            <if test="priceStd != null">
+                AND t.price_std = #{priceStd}
+            </if>
+            <if test="amtStd != null">
+                AND t.amt_std = #{amtStd}
+            </if>
+            <if test="priceSale != null">
+                AND t.price_sale = #{priceSale}
+            </if>
+            <if test="itemAmt != null">
+                AND t.item_amt = #{itemAmt}
+            </if>
+            <if test="priceDiscount != null">
+                AND t.price_discount = #{priceDiscount}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND t.non_std_code = #{nonStdCode}
+            </if>
+            <if test="outStatus != null and outStatus != ''">
+                AND t.out_status = #{outStatus}
+            </if>
+            <if test="outingQty != null">
+                AND t.outing_qty = #{outingQty}
+            </if>
+            <if test="outingAmt != null">
+                AND t.outing_amt = #{outingAmt}
+            </if>
+            <if test="outQty != null">
+                AND t.out_qty = #{outQty}
+            </if>
+            <if test="outAmt != null">
+                AND t.out_amt = #{outAmt}
+            </if>
+            <if test="returnQty != null">
+                AND t.return_qty = #{returnQty}
+            </if>
+            <if test="returnAmt != null">
+                AND t.return_amt = #{returnAmt}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND t.remarks = #{remarks}
+            </if>
+            <if test="flgValid != null">
+                AND t.flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND t.cp_id = #{cpId}
+            </if>
+        </where>
+    </sql>
+
+    <!-- 查询表t_psi_order_item,(条件查询+分页)列表 -->
+    <select id="purchaseBasedOnSaleSelectByCond" resultMap="BaseResultMapResponse">
+        SELECT t.item_id,
+        t.order_id,
+        tpo.order_no,
+        t.item_index,
+        t.sku_id,
+        tmgs.sku_code  as "skuCode",
+        tmgs.sku_model as "skuModel",
+        tmgs.sku_name  as "skuName",
+        t.item_qty,
+        t.price_std,
+        t.amt_std,
+        t.price_sale,
+        t.item_amt,
+        t.price_discount,
+        t.non_std_code,
+        t.out_status,
+        t.outing_qty,
+        t.outing_amt,
+        t.out_qty,
+        t.out_amt,
+        t.return_qty,
+        t.return_amt,
+        t.remarks,
+        t.item_qty - coalesce(sumQty,0) as "transferableQuantity"
+        FROM dkic_b.t_psi_order_item as t
+        left join dkic_b.t_psi_order as tpo on tpo.order_id = t.order_id
+        inner join dkic_b.t_mst_goods_sku tmgs on t.sku_id = tmgs.sku_id
+        left join(select from_item_id,sum(item_qty) as sumQty from t_psi_purchase_item
+            group by from_item_id) as pi on pi.from_item_id = t.item_id
+        <include refid="Condition_pur"/>
+        order by t.item_id
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_order_item,(条件查询+分页)列表 -->
+    <select id="purchaseBasedOnSaleContByCond" resultType="Long">
+        SELECT count(1)
+        FROM dkic_b.t_psi_order_item as t
+        left join dkic_b.t_psi_order as tpo on tpo.order_id = t.order_id
+        inner join dkic_b.t_mst_goods_sku tmgs on t.sku_id = tmgs.sku_id
+        <include refid="Condition_pur"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
 </mapper>

+ 3 - 0
src/main/java/com/dk/mdm/model/query/sale/OrderItemQuery.java

@@ -209,6 +209,9 @@ public class OrderItemQuery extends PageInfo<OrderItemQuery> implements Serializ
     @ApiModelProperty(value = "企业ID")
     private Integer cpId;
 
+    @ApiModelProperty(value = "订单单号")
+    private String orderNo;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 12 - 0
src/main/java/com/dk/mdm/model/response/sale/OrderItemResponse.java

@@ -276,6 +276,18 @@ public class OrderItemResponse extends PageInfo<OrderItemResponse> implements Se
     @ApiModelProperty(value = "源销售明细ID")
     private String sOrderItemId;
 
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+    @Excel(name = "可转采购数量")
+    @ApiModelProperty(value = "可转采购数量")
+    private BigDecimal transferableQuantity;
+
+
     private static final long serialVersionUID = 1L;
 
 }

+ 21 - 0
src/main/java/com/dk/mdm/service/sale/OrderItemService.java

@@ -1,13 +1,21 @@
 package com.dk.mdm.service.sale;
 
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.mdm.mapper.sale.OrderItemMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.sale.OrderItemQuery;
+import com.dk.mdm.model.response.sale.OrderItemResponse;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+
 @Service
 @Transactional
 public class OrderItemService extends BaseService<OrderItem> {
@@ -25,4 +33,17 @@ public class OrderItemService extends BaseService<OrderItem> {
 	@Autowired
 	private OrderItemMapper orderItemMapper;
 
+	/**
+	 * @desc   : 以销定采查询销售订单接口
+	 * @date   : 2023/8/23 15:39
+	 * @author : 寇珊珊
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<OrderItemResponse>> purchaseBasedOnSaleSelectOrder(OrderItemQuery orderItemQuery) {
+		//查询销售订单
+		List<OrderItemResponse> items = orderItemMapper.purchaseBasedOnSaleSelectByCond(orderItemQuery);
+		Long  count = orderItemMapper.purchaseBasedOnSaleContByCond(orderItemQuery);
+		return ResponseResultUtil.success(new PageList<>(items, count));
+	}
+
 }