Jelajahi Sumber

提交修改贸易订单代理商

chenxiaofei 9 jam lalu
induk
melakukan
ac33f41e73

+ 9 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/OrderListResDTO.java

@@ -55,6 +55,15 @@ public class OrderListResDTO {
      * 销售单位
      */
     private String supplyFirmName;
+
+    /**
+     * 代理单位ID
+     */
+    private Long agentEntId;
+    /**
+     * 代理单位
+     */
+    private String agentFirmName;
     /**
      * 交易方式(预付款、货到付款)
      */

+ 3 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/TradeOrderListSelectDTO.java

@@ -117,6 +117,9 @@ public class TradeOrderListSelectDTO {
     @Schema(description = "采购单位")
     private Long buyEntId;
 
+    @Schema(description = "代理单位")
+    private Long agentEntId;
+
     @Schema(description = "承运单位")
     private Long transportEntId;
     @Schema(description = "贸易合同")

+ 3 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderListSelectParam.java

@@ -31,6 +31,9 @@ public class TradeOrderListSelectParam extends TradeOrderListStatisticParam {
     @Schema(description = "供应单位")
     private Long buyEntId;
 
+    @Schema(description = "代理单位")
+    private Long agentEntId;
+
     @Schema(description = "承运单位")
     private Long transportEntId;
 

+ 8 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/OrderListResVO.java

@@ -58,6 +58,14 @@ public class OrderListResVO {
      * 销售单位
      */
     private String supplyFirmName;
+    /**
+     * 代理单位主键ID
+     */
+    private Long agentEntId;
+    /**
+     * 代理单位
+     */
+    private String agentFirmName;
     /**
      * 交易方式(预付款、货到付款)
      */

+ 13 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -1844,6 +1844,7 @@ public class KwoTradeOrderService {
      */
     public TradeOrderListSelectDTO buildSelectParam(TradeOrderListStatisticParam params) {
         TradeOrderListSelectDTO dto = BeanUtil.copyProperties(params, TradeOrderListSelectDTO.class);
+        applyAgentEntCondition(dto);
         EntTypeResDto entTypeResDto = remoteSystemService.queryEntTypeById(LoginUserHolder.getEntId());
         dto.setEntId(LoginUserHolder.getEntId()).setManager(LoginUserHolder.isManager()).setEntType(Objects.nonNull(entTypeResDto) ? entTypeResDto.getType() : null).setEntList(LoginUserHolder.getChildEntList()).setIsMain(LoginUserHolder.getIsMain());
         //装卸货地址
@@ -1892,6 +1893,18 @@ public class KwoTradeOrderService {
         dto.setKeywords(null);
     }
 
+    /**
+     * 代理单位查询条件存在时,仅查询具备代理属性的订单。
+     *
+     * @param dto 贸易订单列表查询DTO
+     */
+    static void applyAgentEntCondition(TradeOrderListSelectDTO dto) {
+        if (Objects.isNull(dto) || Objects.isNull(dto.getAgentEntId())) {
+            return;
+        }
+        dto.setAgentFlag(Global.YES);
+    }
+
     /**
      * @desc: 设置两位小数
      * @author: yzc

+ 9 - 1
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -9,6 +9,8 @@
         <result column="procureFirmName" property="procureFirmName"/>
         <result column="supplyEntId" property="supplyEntId"/>
         <result column="supplyFirmName" property="supplyFirmName"/>
+        <result column="agentEntId" property="agentEntId"/>
+        <result column="agentFirmName" property="agentFirmName"/>
         <result column="trading" property="trading"/>
         <result column="deliveryType" property="deliveryType"/>
         <result column="pickupType" property="pickupType"/>
@@ -55,6 +57,8 @@
         d.firm_name      AS procureFirmName,
         e.ent_id         AS supplyEntId,
         e.firm_name      AS supplyFirmName,
+        if(a.agent_flag = 1, e.ent_id, null) AS agentEntId,
+        if(a.agent_flag = 1, e.firm_name, null) AS agentFirmName,
         a.trading        AS trading,
         a.delivery_type  AS deliveryType,
         a.pickup_type    AS pickupType,
@@ -172,9 +176,13 @@
             <if test="query.saleEntId != null">
                 and e.ent_id = #{query.saleEntId}
             </if>
-            <if test="query.agentFlag != null">
+            <if test="query.agentFlag != null and query.agentEntId == null">
                 and a.agent_flag = #{query.agentFlag}
             </if>
+            <if test="query.agentEntId != null">
+                and a.agent_flag = 1
+                and e.ent_id = #{query.agentEntId}
+            </if>
             <if test="query.status != null">
                 and a.status = #{query.status}
             </if>

+ 14 - 0
sckw-modules/sckw-order/src/test/java/com/sckw/order/serivce/KwoTradeOrderServiceTest.java

@@ -122,4 +122,18 @@ public class KwoTradeOrderServiceTest {
         Assert.assertNull(dto.getAgentFlag());
         Assert.assertEquals("钢材", dto.getKeywords());
     }
+
+    /**
+     * 代理单位条件存在时,应自动转换为代理属性过滤。
+     */
+    @Test
+    public void applyAgentEntConditionWhenAgentEntIdExists() {
+        TradeOrderListSelectDTO dto = new TradeOrderListSelectDTO();
+        dto.setAgentEntId(1001L);
+        dto.setAgentFlag(0);
+
+        KwoTradeOrderService.applyAgentEntCondition(dto);
+
+        Assert.assertEquals(Integer.valueOf(1), dto.getAgentFlag());
+    }
 }