Sfoglia il codice sorgente

feat:新增查询客户对账列表接口
添加一个查询客户对账模块,查询接口为多条件分页查询

yangyi 5 mesi fa
parent
commit
2cc848fca2
14 ha cambiato i file con 511 aggiunte e 0 eliminazioni
  1. 6 0
      ruoyi-admin/pom.xml
  2. 2 0
      ruoyi-modules/pom.xml
  3. 112 0
      ruoyi-modules/ruoyi-customerReconciliation/pom.xml
  4. 25 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/controller/CustomerReconciliationController.java
  5. 112 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/DTO/CustomerReconciliationDTO.java
  6. 27 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationCustomerVo.java
  7. 20 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationPageVO.java
  8. 27 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationVO.java
  9. 23 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/DeliveryVO.java
  10. 19 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/OrderVo.java
  11. 13 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/mapper/CustomerReconciliationVOMapper.java
  12. 9 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/CustomerReconciliationService.java
  13. 24 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/impl/CustomerReconciliationServiceImpl.java
  14. 92 0
      ruoyi-modules/ruoyi-customerReconciliation/src/main/resources/mapper/CustomerReconciliationVOMapper.xml

+ 6 - 0
ruoyi-admin/pom.xml

@@ -124,6 +124,12 @@
             <artifactId>ruoyi-InventoryManagement</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-customerReconciliation</artifactId>
+            <version>${revision}</version>
+        </dependency>
+
         <!--  工作流模块  -->
         <dependency>
             <groupId>org.dromara</groupId>

+ 2 - 0
ruoyi-modules/pom.xml

@@ -22,6 +22,8 @@
         <module>ruoyi-productionManagementOfBulkOrders</module>
         <module>ruoyi-dataManagement</module>
         <module>ruoyi-InventoryManagement</module>
+        <module>ruoyi-customerReconciliation</module>
+        <module>ruoyi-customerReconciliation</module>
     </modules>
 
     <artifactId>ruoyi-modules</artifactId>

+ 112 - 0
ruoyi-modules/ruoyi-customerReconciliation/pom.xml

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.dromara</groupId>
+        <artifactId>ruoyi-modules</artifactId>
+        <version>${revision}</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ruoyi-customerReconciliation</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+
+        <!-- 通用工具-->
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-doc</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-sms</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-mail</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-idempotent</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-mybatis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-log</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-excel</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-security</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-ratelimiter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-translation</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-sensitive</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-encrypt</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-tenant</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-websocket</artifactId>
+        </dependency>
+
+
+    </dependencies>
+
+</project>

+ 25 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/controller/CustomerReconciliationController.java

@@ -0,0 +1,25 @@
+package org.dromara.customerReconciliation.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+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.service.CustomerReconciliationService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+/**
+ * 客户对账单Controller
+ */
+@RestController
+@RequestMapping("/customerReconciliation")
+@RequiredArgsConstructor
+public class CustomerReconciliationController {
+    private final CustomerReconciliationService customerReconciliationService;
+    @GetMapping("/getCustomerReconciliation")
+    public R<CustomerReconciliationPageVO> getCustomerReconciliation(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery){
+        CustomerReconciliationPageVO list = customerReconciliationService.getCustomerReconciliationPageVO(customerReconciliationDTO,pageQuery);
+        return R.ok(list);
+    }
+}

+ 112 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/DTO/CustomerReconciliationDTO.java

@@ -0,0 +1,112 @@
+package org.dromara.customerReconciliation.domain.DTO;
+
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.hibernate.validator.constraints.Range;
+
+import java.time.LocalDateTime;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CustomerReconciliationDTO extends BaseEntity {
+
+    /**
+     * 工厂名称garment_factory
+     */
+    private String garmentFactory;
+    //todo:送货号
+    /**
+     * 底布
+     */
+    private String baseCloth;
+    /**
+     * 款号
+     */
+    private String itemNumber;
+    /**
+     * 送货时间
+     */
+    private LocalDateTime deliveryStartTime;
+    private LocalDateTime deliveryEndTime;
+
+    /**
+     * 首次加工,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isFirstProcessing;
+
+    /**
+     * 首单,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isFirstOrder;
+
+    /**
+     * 复色,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isMulticolor;
+
+    /**
+     * 快返,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isQuickReturn;
+
+    /**
+     * 烧花,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isBurnFlowers;
+
+    /**
+     * 打印状态,0:否,1:打印中
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer printStatus;
+    /**
+     * 补货,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isBuhuo;
+    /**
+     * 紧急,0否,1是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isUrgent;
+    /**
+     * 是否系统单:0否,1:是
+     */
+    @Min(value = 0,message = "超出范围,0否,1是")
+    @Max(value = 1,message = "超出范围,0否,1是")
+    private Integer isSys;
+    /**
+     * 对账状态
+     * /**
+     * 对账状态,0:未对账,1:已对账
+     */
+    @Min(value = 0,message = "超出范围,0:未对账,1:已对账")
+    @Max(value = 1,message = "超出范围,0:未对账,1:已对账")
+    private Integer duiZhangStatus;
+
+
+    /**
+     * 1排产中,2.产前确认中,3.打印中,4.后整中,5烧花中,6.入库
+     */
+    @Min(value = 1,message = "1排产中,2.产前确认中,3.打印中,4.转印中,5.烧花中,6.后整中,7.待发货,8.已发货,9.已确认发货,10.作废,11.白布配货")
+    @Max(value = 11,message = "1排产中,2.产前确认中,3.打印中,4.转印中,5.烧花中,6.后整中,7.待发货,8.已发货,9.已确认发货,10.作废,11.白布配货")
+    private Integer craftStatus;
+
+}

+ 27 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationCustomerVo.java

@@ -0,0 +1,27 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+@Data
+public class CustomerReconciliationCustomerVo {
+    /**
+     * 制衣厂名称
+     */
+    private String factoryName;
+    /**
+     * 制衣厂联系人
+     */
+    private String factoryContact;
+    /**
+     * 制衣厂联系电话
+     */
+    private String factoryPhone;
+    /**
+     * 客户名称
+     */
+    private String customerName;
+    /**
+     * 收货地址
+     */
+    private String address;
+}

+ 20 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/CustomerReconciliationPageVO.java

@@ -0,0 +1,20 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class CustomerReconciliationPageVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+    private Integer total;
+    private List<CustomerReconciliationVO> data;
+
+    public CustomerReconciliationPageVO(long total, List<CustomerReconciliationVO> list) {
+        this.total = (int) total;
+        this.data = list;
+    }
+}

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

@@ -0,0 +1,27 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+/**
+ * 客户对账VO
+ * 涉及生产计划表,生产计划详情表,订单表,订单详情表
+ */
+@Data
+public class CustomerReconciliationVO {
+    private CustomerReconciliationCustomerVo customer;
+    private DeliveryVO delivery;
+    private OrderVo order;
+    /**
+     * 生产计划单号
+     */
+    private String purchase_code;
+    /**
+     * 对账状态
+     * 0:未对账 1:已对账
+     */
+    private Integer status;
+    /**
+     * 生产计划id
+     */
+    private Long id;
+}

+ 23 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/DeliveryVO.java

@@ -0,0 +1,23 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+@Data
+public class DeliveryVO {
+    /**
+     * 大货编号
+     */
+    private String deliveryNo;
+    /**
+     * 款号
+     */
+    private String styleNo;
+    /**
+     * 底布
+     */
+    private String baseCloth;
+    /**
+     * 花型号
+     */
+    private String flowerNo;
+}

+ 19 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/domain/VO/OrderVo.java

@@ -0,0 +1,19 @@
+package org.dromara.customerReconciliation.domain.VO;
+
+import lombok.Data;
+
+@Data
+public class OrderVo {
+    /**
+     * 账单金额
+     */
+    private String amount;
+    /**
+     * 送货时间
+     */
+    private String deliveryTime;
+    /**
+     * 收货时间
+     */
+    private String receiveTime;
+}

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

@@ -0,0 +1,13 @@
+package org.dromara.customerReconciliation.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+import org.dromara.customerReconciliation.domain.DTO.CustomerReconciliationDTO;
+import org.dromara.customerReconciliation.domain.VO.CustomerReconciliationVO;
+import org.mapstruct.Mapper;
+
+
+@Mapper
+public interface CustomerReconciliationVOMapper {
+    Page<CustomerReconciliationVO> get(Page<CustomerReconciliationVO> build, @Param("dto") CustomerReconciliationDTO customerReconciliationDTO);
+}

+ 9 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/CustomerReconciliationService.java

@@ -0,0 +1,9 @@
+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;
+
+public interface CustomerReconciliationService {
+    CustomerReconciliationPageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery);
+}

+ 24 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/java/org/dromara/customerReconciliation/service/impl/CustomerReconciliationServiceImpl.java

@@ -0,0 +1,24 @@
+package org.dromara.customerReconciliation.service.impl;
+
+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.CustomerReconciliationVO;
+import org.dromara.customerReconciliation.mapper.CustomerReconciliationVOMapper;
+import org.dromara.customerReconciliation.service.CustomerReconciliationService;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@RequiredArgsConstructor
+public class CustomerReconciliationServiceImpl implements CustomerReconciliationService {
+    private final CustomerReconciliationVOMapper customerReconciliationVOMapper;
+    @Override
+    public CustomerReconciliationPageVO getCustomerReconciliationPageVO(CustomerReconciliationDTO customerReconciliationDTO, PageQuery pageQuery) {
+        //todo
+        Page<CustomerReconciliationVO> page = customerReconciliationVOMapper.get(pageQuery.<CustomerReconciliationVO>build(), customerReconciliationDTO);
+        return new CustomerReconciliationPageVO(page.getTotal(), page.getRecords());
+    }
+}

+ 92 - 0
ruoyi-modules/ruoyi-customerReconciliation/src/main/resources/mapper/CustomerReconciliationVOMapper.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.customerReconciliation.mapper.CustomerReconciliationVOMapper">
+    <resultMap id="customerReconciliationResultMap" type="org.dromara.customerReconciliation.domain.VO.CustomerReconciliationVO">
+        <result property="id" column="id"/>
+        <result property="purchase_code" column="purchase_code"/>
+        <result property="status" column="duizhang_status"/>
+
+        <association property="customer" javaType="org.dromara.customerReconciliation.domain.VO.CustomerReconciliationCustomerVo">
+            <result property="factoryName" column="garment_factory"/>
+            <result property="factoryContact" column="garment_factory_people"/>
+            <result property="factoryPhone" column="garment_factory_tel"/>
+            <result property="customerName" column="customer_customerName"/>
+            <result property="address" column="receiving_address"/>
+        </association>
+
+        <association property="delivery" javaType="org.dromara.customerReconciliation.domain.VO.DeliveryVO">
+            <result property="deliveryNo" column="delivery_deliveryNo"/>
+            <result property="styleNo" column="item_number"/>
+            <result property="baseCloth" column="base_cloth"/>
+            <result property="flowerNo" column="flower_no"/>
+        </association>
+
+        <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>
+
+    <select id="get" resultMap="customerReconciliationResultMap">
+        SELECT p.id AS id,garment_factory,garment_factory_people,garment_factory_tel,'客户名称' AS customer_customerName,receiving_address,'大货编号' AS delivery_deliveryNo,item_number,base_cloth,'花型号' AS flower_no,all_money AS order_amount,delivery_date,confirm_delivery_time AS receive_time,purchase_code,duizhang_status
+        FROM fa_kuyou_plan AS p
+        LEFT JOIN fa_kuyou_plan_info AS pi ON pi.plan_id = p.id
+        <where>
+            <if test="dto.garmentFactory != null and dto.garmentFactory != ''">
+                AND pi.garment_factory = #{dto.garmentFactory}
+            </if>
+
+            AND '送货单号' = '送货单号'
+
+            <if test="dto.baseCloth != null and dto.baseCloth != ''">
+                AND base_cloth = #{dto.baseCloth}
+            </if>
+            <if test="dto.itemNumber != null and dto.itemNumber != ''">
+                AND item_number = #{dto.itemNumber}
+            </if>
+            <if test="dto.deliveryStartTime != null and dto.deliveryStartTime != ''">
+                AND delivery_date >= #{dto.deliveryStartTime}
+            </if>
+            <if test="dto.deliveryEndTime != null and dto.deliveryEndTime != ''">
+                AND #{dto.deliveryEndTime} >= delivery_date
+            </if>
+            <if test="dto.isFirstProcessing != null and dto.isFirstProcessing != ''">
+                AND is_first_processing = #{dto.isFirstProcessing}
+            </if>
+            <if test="dto.isFirstOrder != null and dto.isFirstOrder != ''">
+                AND is_first_order = #{dto.isFirstOrder}
+            </if>
+            <if test="dto.isMulticolor != null and dto.isMulticolor != ''">
+                AND is_multicolor = #{dto.isMulticolor}
+            </if>
+            <if test="dto.isQuickReturn != null and dto.isQuickReturn != ''">
+                AND is_quick_return = #{dto.isQuickReturn}
+            </if>
+            <if test="dto.isBurnFlowers != null and dto.isBurnFlowers != ''">
+                AND is_burn_flowers = #{dto.isBurnFlowers}
+            </if>
+            <if test="dto.printStatus != null and dto.printStatus != ''">
+                AND print_status = #{dto.printStatus}
+            </if>
+            <if test="dto.isBuhuo != null and dto.isBuhuo != ''">
+                AND is_buhuo = #{dto.isBuhuo}
+            </if>
+            <if test="dto.isUrgent != null and dto.isUrgent != ''">
+                AND is_urgent = #{dto.isUrgent}
+            </if>
+            <if test="dto.isSys != null and dto.isSys != ''">
+                AND is_sys = #{dto.isSys}
+            </if>
+            <if test="dto.duiZhangStatus != null and dto.duiZhangStatus != ''">
+                AND duizhang_status = #{dto.duiZhangStatus}
+            </if>
+            <if test="dto.craftStatus != null and dto.craftStatus != ''">
+                AND craft_status = #{dto.craftStatus}
+            </if>
+        </where>
+
+    </select>
+</mapper>