Просмотр исходного кода

feat:新增查询客户收款列表接口

yangyi 5 месяцев назад
Родитель
Сommit
5dc36d05fd
10 измененных файлов с 486 добавлено и 14 удалено
  1. 9 3
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/controller/CustomerReconciliationController.java
  2. 58 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationUserOrderVO.java
  3. 1 1
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationVO.java
  4. 1 1
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/OrderVO.java
  5. 3 3
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/PageVO.java
  6. 293 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/PlanAndOrderVO.java
  7. 5 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/mapper/CustomerReconciliationVOMapper.java
  8. 6 2
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/CustomerReconciliationService.java
  9. 13 3
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/impl/CustomerReconciliationServiceImpl.java
  10. 97 1
      ruoyi-modules/ruoyi-customerReconciliation/src/main/resources/mapper/CustomerReconciliationVOMapper.xml

+ 9 - 3
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/controller/CustomerReconciliationController.java

@@ -8,11 +8,13 @@ import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.customerReconciliation.domain.DTO.CustomerReconciliationDTO;
-import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationPageVO;
+import org.dromara.customerReconciliation.domain.VO.PageVO;
 import org.dromara.customerReconciliation.service.CustomerReconciliationService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDateTime;
+
 /**
  * 客户对账单Controller
  */
@@ -23,8 +25,8 @@ public class CustomerReconciliationController extends BaseController {
     private final CustomerReconciliationService customerReconciliationService;
     @SaCheckPermission("fa:customerReconciliation:list")
     @GetMapping("/getCustomerReconciliation")
-    public R<CustomerReconciliationPageVO> getCustomerReconciliation(@Valid() CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery){
-        CustomerReconciliationPageVO list = customerReconciliationService.getCustomerReconciliationPageVO(customerReconciliationDTO,pageQuery);
+    public R<PageVO> getCustomerReconciliation(@Valid() CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery){
+        PageVO list = customerReconciliationService.getCustomerReconciliationPageVO(customerReconciliationDTO,pageQuery);
         return R.ok(list);
     }
     @SaCheckPermission("fa:customerReconciliation:update")
@@ -32,4 +34,8 @@ public class CustomerReconciliationController extends BaseController {
     public R<Void> updateCustomerReconciliationStatus(@Validated(EditGroup.class) @RequestBody CustomerReconciliationDTO customerReconciliationDTO){
         return toAjax(customerReconciliationService.updateCustomerReconciliationStatus(customerReconciliationDTO));
     }
+    @GetMapping("/customers_pay")
+    public R<PageVO> getCustomerCollection(PageQuery pageQuery, LocalDateTime startTime, LocalDateTime endTime){
+        return R.ok(customerReconciliationService.getCustomerCollection(pageQuery,startTime,endTime));
+    }
 }

+ 58 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationUserOrderVO.java

@@ -0,0 +1,58 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+@Data
+public class CustomerReconciliationUserOrderVO {
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 用户名称
+     */
+    private String name;
+
+    /**
+     * 电话
+     */
+    private String phone;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 订单编号
+     */
+    private String orderNumber;
+
+    /**
+     * 订单价格
+     */
+    private Double orderPrice = 1.00;
+
+    /**
+     * 订单状态
+     * 0=待审核,1=已审核,2=待发货,3=待收货,4=已收货,5=退款中,6=退款完成,7=交易取消,8=交易完成
+     */
+    private Integer status = 0;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 支付状态
+     * 0=支付中,1=支付成功,2=支付失败
+     */
+    private Integer payStatus = 0;
+}

+ 1 - 1
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationVO.java

@@ -10,7 +10,7 @@ import lombok.Data;
 public class CustomerReconciliationVO {
     private CustomerReconciliationCustomerVo customer;
     private DeliveryVO delivery;
-    private OrderVo order;
+    private OrderVO order;
     /**
      * 生产计划单号
      */

+ 1 - 1
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/OrderVo.java → ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/OrderVO.java

@@ -3,7 +3,7 @@ package org.dromara.customerReconciliation.domain.VO;
 import lombok.Data;
 
 @Data
-public class OrderVo {
+public class OrderVO {
     /**
      * 账单金额
      */

+ 3 - 3
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationPageVO.java → ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/PageVO.java

@@ -7,13 +7,13 @@ import java.io.Serializable;
 import java.util.List;
 
 @Data
-public class CustomerReconciliationPageVO implements Serializable {
+public class PageVO<T> implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
     private Integer total;
-    private List<CustomerReconciliationVO> data;
+    private List<T> data;
 
-    public CustomerReconciliationPageVO(long total, List<CustomerReconciliationVO> list) {
+    public PageVO(long total, List<T> list) {
         this.total = (int) total;
         this.data = list;
     }

+ 293 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/PlanAndOrderVO.java

@@ -0,0 +1,293 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class PlanAndOrderVO {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 系统单号
+     */
+    private String sysNo;
+
+    /**
+     * 订单编号
+     */
+    private String scNo;
+
+    /**
+     * 生产计划单号
+     */
+    private String purchaseCode;
+
+    /**
+     * 单据日期
+     */
+    private Date purchaseTime;
+
+    /**
+     * 交货时间
+     */
+    private Date deliveryTime;
+
+    /**
+     * 车间
+     */
+    private Integer workshopId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品单位
+     */
+    private Integer goodsUnit;
+
+    /**
+     * 基本单位
+     */
+    private Integer defaultUnit;
+
+    /**
+     * 数量
+     */
+    private Double number;
+
+    /**
+     * 份数
+     */
+    private Double fenNumber;
+
+    /**
+     * 基本数量
+     */
+    private Double basicNumber;
+
+    /**
+     * 基本份数
+     */
+    private Double basicFenNumber;
+
+    /**
+     * 底布单价
+     */
+    private Double baseClothPrice;
+
+    /**
+     * 工艺单价
+     */
+    private Double craftPrice;
+
+    /**
+     * 单价
+     */
+    private Double price;
+
+    /**
+     * 金额
+     */
+    private Double allMoney;
+
+    /**
+     * 审核状态:0=未审核,1=已审核
+     */
+    private String examineStatus;
+
+    /**
+     * 审核时间
+     */
+    private Date examineTime;
+
+    /**
+     * 状态:0=未完成,1=已完成
+     */
+    private String status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 制单人
+     */
+    private Long preparationId;
+
+    /**
+     * 审核人
+     */
+    private Long examineId;
+
+    /**
+     * 最后操作人
+     */
+    private Long operationId;
+
+    /**
+     * mrp状态
+     */
+    private String mrpStatus;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 烧花,0否,1是
+     */
+    private Integer isBurnFlowers = 0;
+
+    /**
+     * 定位,0否,1是
+     */
+    private Integer isLocation = 0;
+
+    /**
+     * 快返,0否,1是
+     */
+    private Integer isQuickReturn = 0;
+
+    /**
+     * 作废0否,1是
+     */
+    private Integer isToVoid = 0;
+
+    /**
+     * 复色,0否,1是
+     */
+    private Integer isMulticolor = 0;
+
+    /**
+     * 首单,0否,1是
+     */
+    private Integer isFirstOrder = 0;
+
+    /**
+     * 首次加工,0否,1是
+     */
+    private Integer isFirstProcessing = 0;
+
+    /**
+     * 紧急,0否,1是
+     */
+    private Integer isUrgent = 0;
+
+    /**
+     * 1排产中,2.产前确认中,3.打印中,4.后整中,5烧花中,6.入库
+     */
+    private Integer craftStatus = 1;
+
+    /**
+     * 销货单id
+     */
+    private Long goodsSalesId = 0L;
+
+    /**
+     * 宽幅
+     */
+    private String width;
+
+    /**
+     * 克重
+     */
+    private String weight;
+
+    /**
+     * 订单号
+     */
+    private String orderNum;
+
+    /**
+     * 分页以及数量展示
+     */
+    private String pageList;
+
+    /**
+     * 打印状态
+     */
+    private Integer prIntegerStatus = 0;
+
+    /**
+     * 发货数量
+     */
+    private Double shipNum;
+
+    /**
+     * 已收款
+     */
+    private Double paidForAmount;
+
+    /**
+     * 尾款
+     */
+    private Double overAmount;
+
+    /**
+     * 备注
+     */
+    private String billRemark;
+
+    /**
+     * 确认收货时间
+     */
+    private Date confirmDeliveryTime;
+
+    /**
+     * 发货时间
+     */
+    private Date shippingTime;
+
+    /**
+     *用户id
+     */
+    private Long userId;
+
+    /**
+     * 是否补货,0否,1是
+     */
+    private Integer isBuhuo = 0;
+
+    /**
+     * 是否系统单,0否,1是
+     */
+    private String isSys = "0";
+
+    /**
+     *
+     */
+    private Date zhuanyinTime;
+
+    /**
+     *
+     */
+    private Integer outFactoryId;
+
+    /**
+     *
+     */
+    private Integer shFactoryId;
+    /**
+     * 订单详情
+     */
+    private CustomerReconciliationUserOrderVO order;
+}

+ 5 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/mapper/CustomerReconciliationVOMapper.java

@@ -4,12 +4,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.dromara.customerReconciliation.domain.DTO.CustomerReconciliationDTO;
+import org.dromara.customerReconciliation.domain.VO.PlanAndOrderVO;
 import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationVO;
 
+import java.time.LocalDateTime;
+
 
 @Mapper
 public interface CustomerReconciliationVOMapper {
     Page<CustomerReconciliationVO> get(Page<CustomerReconciliationVO> build, @Param("dto") CustomerReconciliationDTO customerReconciliationDTO);
 
     int updateCustomerReconciliationStatus(Long id, Integer duiZhangStatus, String billRemark);
+    //todo:数据库需要加索引
+    Page<PlanAndOrderVO> getCustomerCollection(Page<PlanAndOrderVO> build, LocalDateTime startTime, LocalDateTime endTime);
 }

+ 6 - 2
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/CustomerReconciliationService.java

@@ -2,10 +2,14 @@ package org.dromara.customerReconciliation.service;
 
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.customerReconciliation.domain.DTO.CustomerReconciliationDTO;
-import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationPageVO;
+import org.dromara.customerReconciliation.domain.VO.PageVO;
+
+import java.time.LocalDateTime;
 
 public interface CustomerReconciliationService {
-    CustomerReconciliationPageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery);
+    PageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery);
 
     boolean updateCustomerReconciliationStatus(CustomerReconciliationDTO customerReconciliationDTO);
+
+    PageVO getCustomerCollection(PageQuery pageQuery, LocalDateTime startTime, LocalDateTime endTime);
 }

+ 13 - 3
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/impl/CustomerReconciliationServiceImpl.java

@@ -4,25 +4,35 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.customerReconciliation.domain.DTO.CustomerReconciliationDTO;
-import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationPageVO;
+import org.dromara.customerReconciliation.domain.VO.PageVO;
 import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationVO;
+import org.dromara.customerReconciliation.domain.VO.PlanAndOrderVO;
 import org.dromara.customerReconciliation.mapper.CustomerReconciliationVOMapper;
 import org.dromara.customerReconciliation.service.CustomerReconciliationService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+
 
 @Service
 @RequiredArgsConstructor
 public class CustomerReconciliationServiceImpl implements CustomerReconciliationService {
     private final CustomerReconciliationVOMapper customerReconciliationVOMapper;
     @Override
-    public CustomerReconciliationPageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery) {
+    public PageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery) {
         Page<CustomerReconciliationVO> page = customerReconciliationVOMapper.get(pageQuery.<CustomerReconciliationVO>build(), customerReconciliationDTO);
-        return new CustomerReconciliationPageVO(page.getTotal(), page.getRecords());
+        return new PageVO(page.getTotal(), page.getRecords());
     }
 
     @Override
     public boolean updateCustomerReconciliationStatus(CustomerReconciliationDTO customerReconciliationDTO) {
         return customerReconciliationVOMapper.updateCustomerReconciliationStatus(customerReconciliationDTO.getId(), customerReconciliationDTO.getDuiZhangStatus(), customerReconciliationDTO.getBillRemark()) > 0;
     }
+
+    @Override
+    public PageVO<PlanAndOrderVO> getCustomerCollection(PageQuery pageQuery, LocalDateTime startTime, LocalDateTime endTime) {
+        Page<PlanAndOrderVO> page = customerReconciliationVOMapper.getCustomerCollection(pageQuery.<PlanAndOrderVO>build(), startTime, endTime);
+        PageVO vo = new PageVO(page.getTotal(), page.getRecords());
+        return vo;
+    }
 }

+ 97 - 1
ruoyi-modules/ruoyi-customerReconciliation/src/main/resources/mapper/CustomerReconciliationVOMapper.xml

@@ -23,12 +23,82 @@
             <result property="flowerNo" column="flower_no"/>
         </association>
 
-        <association property="order" javaType="org.dromara.customerReconciliation.domain.VO.OrderVo">
+        <association property="order" javaType="org.dromara.customerReconciliation.domain.VO.OrderVO">
             <result property="amount" column="order_amount"/>
             <result property="deliveryTime" column="delivery_date"/>
             <result property="receiveTime" column="receive_time"/>
         </association>
     </resultMap>
+    <resultMap id="PlanAndOrderVOResultMap" type="org.dromara.customerReconciliation.domain.VO.PlanAndOrderVO">
+        <id property="id" column="id"/>
+        <result property="sysNo" column="sys_no"/>
+        <result property="scNo" column="sc_no"/>
+        <result property="purchaseCode" column="purchase_code"/>
+        <result property="purchaseTime" column="purchase_time"/>
+        <result property="deliveryTime" column="delivery_time"/>
+        <result property="workshopId" column="workshop_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="goodsCode" column="goods_code"/>
+        <result property="goodsUnit" column="goods_unit"/>
+        <result property="defaultUnit" column="default_unit"/>
+        <result property="number" column="number"/>
+        <result property="fenNumber" column="fen_number"/>
+        <result property="basicNumber" column="basic_nmber"/>
+        <result property="basicFenNumber" column="basic_fen_nmber"/>
+        <result property="baseClothPrice" column="base_cloth_price"/>
+        <result property="craftPrice" column="gongyi_price"/>
+        <result property="price" column="unit_price"/>
+        <result property="allMoney" column="all_money"/>
+        <result property="examineStatus" column="examine_status"/>
+        <result property="examineTime" column="examine_time"/>
+        <result property="status" column="status"/>
+        <result property="remark" column="remark"/>
+        <result property="preparationId" column="preparation_id"/>
+        <result property="examineId" column="examine_id"/>
+        <result property="operationId" column="operation_id"/>
+        <result property="mrpStatus" column="mrp_status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="isBurnFlowers" column="is_burn_flowers"/>
+        <result property="isLocation" column="is_location"/>
+        <result property="isQuickReturn" column="is_quick_return"/>
+        <result property="isToVoid" column="is_to_void"/>
+        <result property="isMulticolor" column="is_multicolor"/>
+        <result property="isFirstOrder" column="is_first_order"/>
+        <result property="isFirstProcessing" column="is_first_processing"/>
+        <result property="isUrgent" column="is_urgent"/>
+        <result property="craftStatus" column="craft_status"/>
+        <result property="goodsSalesId" column="goods_sales_id"/>
+        <result property="width" column="width"/>
+        <result property="weight" column="weight"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="pageList" column="page_list"/>
+        <result property="prIntegerStatus" column="print_status"/>
+        <result property="shipNum" column="ship_num"/>
+        <result property="paidForAmount" column="paid_for_amount"/>
+        <result property="overAmount" column="over_amount"/>
+        <result property="billRemark" column="bill_remark"/>
+        <result property="confirmDeliveryTime" column="confirm_delivery_time"/>
+        <result property="shippingTime" column="shipping_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="isBuhuo" column="is_buhuo"/>
+        <result property="isSys" column="is_sys"/>
+        <result property="zhuanyinTime" column="zhuanyin_time"/>
+        <result property="outFactoryId" column="out_factory_id"/>
+        <result property="shFactoryId" column="sh_factory_id"/>
+        <association property="order" javaType="org.dromara.customerReconciliation.domain.VO.CustomerReconciliationUserOrderVO">
+            <id property="id" column="uo.id"/>
+            <result property="userId" column="uo.user_id"/>
+            <result property="name" column="uo.name"/>
+            <result property="phone" column="uo.phone"/>
+            <result property="address" column="uo.address"/>
+            <result property="orderNumber" column="uo.order_num"/>
+            <result property="orderPrice" column="uo.order_price"/>
+            <result property="status" column="uo.status"/>
+            <result property="remark" column="uo.remark"/>
+            <result property="payStatus" column="uo.pay_status"/>
+        </association>
+    </resultMap>
     <update id="updateCustomerReconciliationStatus">
         UPDATE fa_kuyou_plan_info
         <set>
@@ -101,4 +171,30 @@
         </where>
 
     </select>
+    <select id="getCustomerCollection"  resultMap="PlanAndOrderVOResultMap">
+        SELECT
+        p.*,
+        uo.id as "uo.id",
+        uo.user_id as "uo.user_id",
+        uo.name as "uo.name",
+        uo.phone as "uo.phone",
+        uo.address as "uo.address",
+        uo.order_num as "uo.order_num",
+        uo.order_price as "uo.order_price",
+        uo.status as "uo.status",
+        uo.remark as "uo.remark",
+        uo.pay_status as "uo.pay_status"
+        FROM
+        fa_kuyou_plan p
+        LEFT JOIN
+        fa_kuyou_user_order uo ON p.order_num = uo.order_num
+        <where>
+            <if test="startTime != null and startTime != ''">
+                AND p.delivery_time >= #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                 #{endTime} >= p.delivery_time
+            </if>
+        </where>
+    </select>
 </mapper>