Răsfoiți Sursa

1.贸易订单对账单分页列表查询接口开发
2.合同关联贸易订单列表接口开发

yzc 1 an în urmă
părinte
comite
306df37dff

+ 1 - 1
sckw-modules-api/sckw-product-api/src/main/java/com/sckw/product/api/dubbo/GoodsInfoService.java

@@ -72,5 +72,5 @@ public interface GoodsInfoService {
 
     KwpGoods getGoodsByGoodsName(String goodsName);
 
-    List<Long> selectIdsLikeGoodsName(String name);
+    List<Long> getGoodsByGoodsNameAndTaxRate(String goodsName, String goodsTaxRate);
 }

+ 43 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java

@@ -74,12 +74,55 @@ public interface KwoTradeOrderMapper extends BaseMapper<KwoTradeOrder> {
                                        @Param("goodIds") List<Long> goodIds,
                                        @Param("authUserIds") List<Long> authUserIds);
 
+    /**
+     * @param query
+     * @param statuses
+     * @param authUserIds
+     * @return java.util.List<com.sckw.order.model.vo.res.TradeOrderAppStatisticVO>
+     * @desc app主界面贸易订单统计
+     * @author yzc
+     * @date 2024/3/15 14:24
+     */
     List<TradeOrderAppStatisticVO> appStatistic(@Param("query") TradeOrderAppStatisticParamDTO query,
                                                 @Param("statuses") List<Integer> statuses,
                                                 @Param("authUserIds") List<Long> authUserIds);
 
+    /**
+     * @param query
+     * @param goodIds
+     * @param authUserIds
+     * @param ids
+     * @return java.util.List<com.sckw.order.model.dto.OrderListResDTO>
+     * @desc 贸易订单列表导出
+     * @author yzc
+     * @date 2024/3/15 14:24
+     */
     List<OrderListResDTO> tradeOrderExport(@Param("query") TradeOrderListSelectDTO query,
                                            @Param("goodIds") List<Long> goodIds,
                                            @Param("authUserIds") List<Long> authUserIds,
                                            @Param("ids") List<Long> ids);
+
+    /**
+     * @param query
+     * @param goodsIds
+     * @param excludeIds
+     * @return java.util.List<com.sckw.order.model.dto.OrderListResDTO>
+     * @desc 贸易订单对账单分页列表查询
+     * @author yzc
+     * @date 2024/3/15 14:24
+     */
+    List<OrderListResDTO> tradeOrderStatementList(@Param("query") TradeOrderStatementListParamDTO query,
+                                                  @Param("goodsIds") List<Long> goodsIds,
+                                                  @Param("excludeIds") List<Long> excludeIds);
+
+    /**
+     * @param query
+     * @param contractIds
+     * @return java.util.List<com.sckw.order.model.dto.OrderListResDTO>
+     * @desc 合同关联订单列表
+     * @author yzc
+     * @date 2024/3/15 14:24
+     */
+    List<OrderListResDTO> tradeOrderContractList(@Param("query") TradeOrderContractParamDTO query,
+                                                 @Param("contractIds") List<Long> contractIds);
 }

+ 25 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/TradeOrderContractParamDTO.java

@@ -0,0 +1,25 @@
+package com.sckw.order.model.dto;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * @desc: 合同关联订单列表请求参数dto
+ * @author: yzc
+ * @date: 2023-07-27 16:48
+ */
+@Getter
+@Setter
+@ToString
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TradeOrderContractParamDTO {
+
+    private Long entId;
+
+    private Integer orderType;
+
+}

+ 55 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/TradeOrderStatementListParamDTO.java

@@ -0,0 +1,55 @@
+package com.sckw.order.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDate;
+
+/**
+ * @desc: 贸易订单对账单列表请求参数DTO
+ * @author: yzc
+ * @date: 2023-07-20 14:43
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class TradeOrderStatementListParamDTO {
+
+    /**
+     * 订单类型(1采购订单2销售订单)
+     */
+    private Integer orderType;
+    /**
+     * 企业id
+     */
+    private Long entId;
+
+    /**
+     * 采购单位id
+     */
+    private Long procureEntId;
+
+    /**
+     * 计划开始时间(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+
+    /**
+     * 计划结束时间(yyyy-MM-dd)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+}

+ 2 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/TradeOrderContractParam.java

@@ -3,6 +3,7 @@ package com.sckw.order.model.vo.req;
 import com.sckw.core.model.page.PageRequest;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -16,6 +17,7 @@ import org.hibernate.validator.constraints.Range;
 @Getter
 @Setter
 @ToString
+@EqualsAndHashCode(callSuper = false)
 public class TradeOrderContractParam extends PageRequest {
 
     @NotBlank(message = "合同ids不能为空")

+ 35 - 15
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -21,7 +21,6 @@ import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.OrderRuleEnum;
 import com.sckw.core.model.enums.RedisOrderGenerateEnum;
 import com.sckw.core.model.page.PageRes;
-import com.sckw.core.model.page.PageResult;
 import com.sckw.core.model.vo.TableBottom;
 import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.model.vo.TableTop;
@@ -1591,11 +1590,23 @@ public class KwoTradeOrderService {
         TradeOrderListSelectDTO dto = buildSelectParam(params);
         PageHelper.startPage(params.getPage(), params.getPageSize());
         List<OrderListResDTO> list = kwoTradeOrderMapper.tradeOrderSelect(dto, dto.getGoodIds(), LoginUserHolder.getAuthUserIdList());
+        return buildResult(list);
+
+    }
+
+    /**
+     * @param list
+     * @return com.sckw.core.model.page.PageRes
+     * @desc 构建列表结果响应
+     * @author yzc
+     * @date 2024/3/15 14:23
+     */
+    private PageRes buildResult(List<OrderListResDTO> list) {
         List<OrderListResVO> result = new ArrayList<>();
         if (CollUtil.isEmpty(list)) {
-            PageInfo<OrderListResVO> pageInfo = new PageInfo<>(result);
-            return PageRes.build(pageInfo, result);
+            return new PageRes<>(new PageInfo<>());
         }
+        PageInfo<OrderListResDTO> pageInfo = new PageInfo<>(list);
         List<Long> goodIdList = new ArrayList<>();
         List<Long> contracIdList = new ArrayList<>();
         List<Long> createByIds = new ArrayList<>();
@@ -1686,7 +1697,6 @@ public class KwoTradeOrderService {
                     .setCreateByName(Objects.isNull(userCache) ? null : userCache.getName());
             result.add(vo);
         });
-        PageInfo<OrderListResVO> pageInfo = new PageInfo<>(result);
         return PageRes.build(pageInfo, result);
     }
 
@@ -1725,7 +1735,7 @@ public class KwoTradeOrderService {
         }
         String keywords = params.getKeywords();
         if (StringUtils.isNotBlank(keywords)) {
-            List<Long> goodIds = goodsInfoService.selectIdsLikeGoodsName(keywords);
+            List<Long> goodIds = goodsInfoService.getGoodsByGoodsNameAndTaxRate(keywords, null);
             dto.setGoodIds(goodIds);
         }
         return dto;
@@ -1947,12 +1957,19 @@ public class KwoTradeOrderService {
      * @author: yzc
      * @date: 2023-07-20 15:03
      * @Param params:
-     * @return: com.sckw.core.model.page.PageResult
+     * @return: com.sckw.core.model.page.PageRes
      */
-    public PageResult tradeOrderStatementList(TradeOrderStatementList params) {
-
-
-        return null;
+    public PageRes tradeOrderStatementList(TradeOrderStatementList params) {
+        TradeOrderStatementListParamDTO dto = BeanUtil.copyProperties(params, TradeOrderStatementListParamDTO.class);
+        List<Long> excludeIds = new ArrayList<>();
+        if (StringUtils.isNotBlank(params.getExcludeIds())) {
+            excludeIds = StringUtils.splitStrToList(params.getExcludeIds(), ",", Long.class);
+        }
+        dto.setEntId(LoginUserHolder.getEntId());
+        List<Long> goodsIds = goodsInfoService.getGoodsByGoodsNameAndTaxRate(params.getGoodsName(), params.getGoodsTaxRate());
+        PageHelper.startPage(params.getPage(), params.getPageSize());
+        List<OrderListResDTO> list = kwoTradeOrderMapper.tradeOrderStatementList(dto, goodsIds, excludeIds);
+        return buildResult(list);
     }
 
     /**
@@ -1960,11 +1977,14 @@ public class KwoTradeOrderService {
      * @author: yzc
      * @date: 2023-07-27 17:05
      * @Param params:
-     * @return: com.sckw.core.model.page.PageResult
+     * @return: com.sckw.core.model.page.PageRes
      */
-    public String tradeOrderContractList(TradeOrderContractParam params) {
-
-
-        return null;
+    public PageRes tradeOrderContractList(TradeOrderContractParam params) {
+        TradeOrderContractParamDTO dto = BeanUtil.copyProperties(params, TradeOrderContractParamDTO.class);
+        dto.setEntId(LoginUserHolder.getEntId());
+        List<Long> contractIds = StringUtils.splitStrToList(params.getContractIds(), ",", Long.class);
+        PageHelper.startPage(params.getPage(), params.getPageSize());
+        List<OrderListResDTO> list = kwoTradeOrderMapper.tradeOrderContractList(dto, contractIds);
+        return buildResult(list);
     }
 }

+ 96 - 4
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -367,6 +367,98 @@
         ORDER BY a.create_time DESC
     </select>
 
+    <select id="tradeOrderStatementList" resultMap="mainEntityMap">
+        SELECT
+        <include refid="Query_Column_List_Accept_Carriage">
+        </include>
+        FROM kwo_trade_order a
+        LEFT JOIN kwo_trade_order_address b ON a.id = b.t_order_id
+        AND b.address_type = "1" AND b.del_flag = 0
+        LEFT JOIN kwo_trade_order_address c ON a.id = c.t_order_id
+        AND c.address_type = "2" AND c.del_flag = 0
+        LEFT JOIN kwo_trade_order_unit d ON a.id = d.t_order_id
+        AND d.unit_type = "1" AND d.del_flag = 0
+        LEFT JOIN kwo_trade_order_unit e ON a.id = e.t_order_id
+        AND e.unit_type = "2" AND e.del_flag = 0
+        LEFT JOIN kwo_trade_order_goods g ON a.id = g.t_order_id AND g.del_flag = 0
+        LEFT JOIN kwo_trade_order_contract f ON a.id = f.t_order_id AND f.del_flag = 0
+        <where>
+            a.status = 5 and a.associate_statement <![CDATA[ <> ]]> 1 and a.del_flag = 0
+            <if test="query.orderType == 1">
+                <if test="query.entId != null">
+                    and d.top_ent_id = #{query.entId}
+                </if>
+            </if>
+            <if test="query.orderType == 2">
+                <if test="query.entId != null">
+                    and e.top_ent_id = #{query.entId}
+                </if>
+            </if>
+            <if test="excludeIds != null and excludeIds.size() > 0">
+                and a.id not in
+                <foreach collection="excludeIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="goodIds != null and goodIds.size() > 0">
+                and g.goods_id in
+                <foreach collection="goodIds" item="goodId" open="(" close=")" separator=",">
+                    #{goodId}
+                </foreach>
+            </if>
+            <if test="query.procureEntId != null ">
+                and d.ent_id = #{query.procureEntId}
+            </if>
+            <if test="query.trading != null and query.trading != ''">
+                and a.trading =#{query.trading}
+            </if>
+            <if test="query.startTime != null ">
+                and a.start_time &gt;= #{query.startTime}
+            </if>
+            <if test="query.endTime != null ">
+                and a.end_time &lt;= #{query.endTime}
+            </if>
+        </where>
+        ORDER BY a.create_time DESC
+    </select>
+
+    <select id="tradeOrderContractList" resultMap="mainEntityMap">
+        SELECT
+        <include refid="Query_Column_List_Accept_Carriage">
+        </include>
+        FROM kwo_trade_order a
+        LEFT JOIN kwo_trade_order_address b ON a.id = b.t_order_id
+        AND b.address_type = "1" AND b.del_flag = 0
+        LEFT JOIN kwo_trade_order_address c ON a.id = c.t_order_id
+        AND c.address_type = "2" AND c.del_flag = 0
+        LEFT JOIN kwo_trade_order_unit d ON a.id = d.t_order_id
+        AND d.unit_type = "1" AND d.del_flag = 0
+        LEFT JOIN kwo_trade_order_unit e ON a.id = e.t_order_id
+        AND e.unit_type = "2" AND e.del_flag = 0
+        LEFT JOIN kwo_trade_order_goods g ON a.id = g.t_order_id AND g.del_flag = 0
+        LEFT JOIN kwo_trade_order_contract f ON a.id = f.t_order_id AND f.del_flag = 0
+        <where>
+            a.del_flag = 0
+            <if test="query.orderType == 1">
+                <if test="query.entId != null">
+                    and d.top_ent_id = #{query.entId}
+                </if>
+            </if>
+            <if test="query.orderType == 2">
+                <if test="query.entId != null">
+                    and e.top_ent_id = #{query.entId}
+                </if>
+            </if>
+            <if test="contractIds != null and contractIds.size() > 0">
+                and f.contract_id in
+                <foreach collection="contractIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY f.contract_id, a.create_time DESC
+    </select>
+
     <select id="tradeOrderStatistic" resultType="com.sckw.core.model.vo.TableTop">
         SELECT a.status AS `value`, COUNT(a.status) AS total
         FROM kwo_trade_order a
@@ -440,12 +532,12 @@
             <if test="query.status != null">
                 and a.status =#{query.status}
                 <if test="query.status == 0">
-                    --          草稿状态只能创建订单的人能看
+                    --草稿状态只能创建订单的人能看
                     and a.create_by = #{query.userId}
                 </if>
             </if>
             <if test="query.status == null">
-                --           非草稿状态or草稿状态且是当前人
+                --非草稿状态or草稿状态且是当前人
                 and (
                 a.status != 0
                 or (a.status = 0 and a.create_by = #{query.userId})
@@ -561,12 +653,12 @@
             </if>
             <if test="query.orderType == 1">
                 <if test="query.entId != null">
-                    d.top_ent_id = #{query.entId}
+                    and d.top_ent_id = #{query.entId}
                 </if>
             </if>
             <if test="query.orderType == 2">
                 <if test="query.entId != null">
-                    e.top_ent_id = #{query.entId}
+                    and e.top_ent_id = #{query.entId}
                 </if>
             </if>
             --状态匹配

+ 2 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/dubbo/GoodsInfoServiceImpl.java

@@ -97,8 +97,8 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
     }
 
     @Override
-    public List<Long> selectIdsLikeGoodsName(String name) {
-        List<Long> ids = kwpGoodsService.selectIdsLikeGoodsName(name);
+    public List<Long> getGoodsByGoodsNameAndTaxRate(String name, String goodsTaxRate) {
+        List<Long> ids = kwpGoodsService.selectIdsTaxRateAndLikeGoodsName(name, goodsTaxRate);
         return CollUtil.emptyIfNull(ids);
     }
 }

+ 7 - 6
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -1003,9 +1003,9 @@ public class KwpGoodsService {
         //是否主平台
         boolean mainPlatform = remoteSystemService.queryMainPlatform(accessSpecial);
         //if (!mainPlatform) {
-            List<Long> entIds = remoteSystemService.queryEntIdsByCode(accessSpecial, String.valueOf(EntTypeEnum.SUPPLIER.getCode()));
-            //entIds.remove(LoginUserHolder.getEntId());
-            wrapper.in(KwpGoods::getEntId, entIds);
+        List<Long> entIds = remoteSystemService.queryEntIdsByCode(accessSpecial, String.valueOf(EntTypeEnum.SUPPLIER.getCode()));
+        //entIds.remove(LoginUserHolder.getEntId());
+        wrapper.in(KwpGoods::getEntId, entIds);
         //}
 
         List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
@@ -1314,11 +1314,12 @@ public class KwpGoodsService {
         return goods;
     }
 
-    public List<Long> selectIdsLikeGoodsName(String name) {
+    public List<Long> selectIdsTaxRateAndLikeGoodsName(String name, String taxRate) {
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.like(KwpGoods::getName, name);
+        wrapper.eq(StringUtils.isNotBlank(taxRate), KwpGoods::getTaxRate, taxRate)
+                .like(StringUtils.isNotBlank(name), KwpGoods::getName, name);
         List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        if (CollUtil.isEmpty(list)){
+        if (CollUtil.isEmpty(list)) {
             return Collections.emptyList();
         }
         return list.stream().map(KwpGoods::getId).toList();