瀏覽代碼

生成文件

fubin 2 年之前
父節點
當前提交
9279fd4022
共有 35 個文件被更改,包括 7049 次插入3 次删除
  1. 24 0
      src/main/java/com/dk/mdm/controller/ivt/OutboundController.java
  2. 24 0
      src/main/java/com/dk/mdm/controller/ivt/OutboundItemController.java
  3. 24 0
      src/main/java/com/dk/mdm/controller/sale/OutReturnController.java
  4. 24 0
      src/main/java/com/dk/mdm/controller/sale/OutReturnItemController.java
  5. 1 1
      src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml
  6. 1 1
      src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml
  7. 14 0
      src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.java
  8. 255 0
      src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml
  9. 14 0
      src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.java
  10. 285 0
      src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.xml
  11. 14 0
      src/main/java/com/dk/mdm/mapper/sale/OutReturnItemMapper.java
  12. 243 0
      src/main/java/com/dk/mdm/mapper/sale/OutReturnItemMapper.xml
  13. 14 0
      src/main/java/com/dk/mdm/mapper/sale/OutReturnMapper.java
  14. 339 0
      src/main/java/com/dk/mdm/mapper/sale/OutReturnMapper.xml
  15. 366 0
      src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java
  16. 316 0
      src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java
  17. 1 1
      src/main/java/com/dk/mdm/model/pojo/sale/OrderItem.java
  18. 437 0
      src/main/java/com/dk/mdm/model/pojo/sale/OutReturn.java
  19. 301 0
      src/main/java/com/dk/mdm/model/pojo/sale/OutReturnItem.java
  20. 315 0
      src/main/java/com/dk/mdm/model/query/ivt/OutboundItemQuery.java
  21. 367 0
      src/main/java/com/dk/mdm/model/query/ivt/OutboundQuery.java
  22. 300 0
      src/main/java/com/dk/mdm/model/query/sale/OutReturnItemQuery.java
  23. 438 0
      src/main/java/com/dk/mdm/model/query/sale/OutReturnQuery.java
  24. 315 0
      src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java
  25. 367 0
      src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java
  26. 300 0
      src/main/java/com/dk/mdm/model/response/sale/OutReturnItemResponse.java
  27. 438 0
      src/main/java/com/dk/mdm/model/response/sale/OutReturnResponse.java
  28. 315 0
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java
  29. 367 0
      src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java
  30. 300 0
      src/main/java/com/dk/mdm/model/vo/sale/OutReturnItemVO.java
  31. 438 0
      src/main/java/com/dk/mdm/model/vo/sale/OutReturnVO.java
  32. 23 0
      src/main/java/com/dk/mdm/service/ivt/OutboundItemService.java
  33. 23 0
      src/main/java/com/dk/mdm/service/ivt/OutboundService.java
  34. 23 0
      src/main/java/com/dk/mdm/service/sale/OutReturnItemService.java
  35. 23 0
      src/main/java/com/dk/mdm/service/sale/OutReturnService.java

+ 24 - 0
src/main/java/com/dk/mdm/controller/ivt/OutboundController.java

@@ -0,0 +1,24 @@
+package com.dk.mdm.controller.ivt;
+
+import com.dk.mdm.model.pojo.ivt.Outbound;
+import com.dk.common.controller.BaseController;
+import com.dk.common.service.BaseService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.ivt.OutboundService;
+
+@Api(tags = "出库单API接口")
+@RestController
+@RequestMapping("/outbound")
+public class OutboundController{
+
+    public BaseService<Outbound> getService() {
+        return outboundService;
+    }
+
+    @Autowired
+    private OutboundService outboundService;
+
+}

+ 24 - 0
src/main/java/com/dk/mdm/controller/ivt/OutboundItemController.java

@@ -0,0 +1,24 @@
+package com.dk.mdm.controller.ivt;
+
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
+import com.dk.common.controller.BaseController;
+import com.dk.common.service.BaseService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.ivt.OutboundItemService;
+
+@Api(tags = "出库明细API接口")
+@RestController
+@RequestMapping("/outboundItem")
+public class OutboundItemController{
+
+    public BaseService<OutboundItem> getService() {
+        return outboundItemService;
+    }
+
+    @Autowired
+    private OutboundItemService outboundItemService;
+
+}

+ 24 - 0
src/main/java/com/dk/mdm/controller/sale/OutReturnController.java

@@ -0,0 +1,24 @@
+package com.dk.mdm.controller.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturn;
+import com.dk.common.controller.BaseController;
+import com.dk.common.service.BaseService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.sale.OutReturnService;
+
+@Api(tags = "出库退货API接口")
+@RestController
+@RequestMapping("/outReturn")
+public class OutReturnController{
+
+    public BaseService<OutReturn> getService() {
+        return outReturnService;
+    }
+
+    @Autowired
+    private OutReturnService outReturnService;
+
+}

+ 24 - 0
src/main/java/com/dk/mdm/controller/sale/OutReturnItemController.java

@@ -0,0 +1,24 @@
+package com.dk.mdm.controller.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturnItem;
+import com.dk.common.controller.BaseController;
+import com.dk.common.service.BaseService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.sale.OutReturnItemService;
+
+@Api(tags = "出库退货明细API接口")
+@RestController
+@RequestMapping("/outReturnItem")
+public class OutReturnItemController{
+
+    public BaseService<OutReturnItem> getService() {
+        return outReturnItemService;
+    }
+
+    @Autowired
+    private OutReturnItemService outReturnItemService;
+
+}

+ 1 - 1
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -9,7 +9,7 @@
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.InboundItem">
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.InboundItemResponse">
         <id column="item_id" property="itemId"/>
                 <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
                 <result column="into_type" property="intoType"/>

+ 1 - 1
src/main/java/com/dk/mdm/mapper/ivt/InboundMapper.xml

@@ -9,7 +9,7 @@
     </sql>
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.Inbound">
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.InboundResponse">
         <id column="into_id" property="intoId"/>
                 <result column="into_no" property="intoNo"/>
                 <result column="into_type" property="intoType"/>

+ 14 - 0
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.java

@@ -0,0 +1,14 @@
+package com.dk.mdm.mapper.ivt;
+
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+*  出库明细 Mapper
+*/
+@Repository
+public interface OutboundItemMapper extends BaseMapper<OutboundItem>{
+	
+}
+

+ 255 - 0
src/main/java/com/dk/mdm/mapper/ivt/OutboundItemMapper.xml

@@ -0,0 +1,255 @@
+<?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="com.dk.mdm.mapper.ivt.OutboundItemMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        item_id, out_id, out_type, from_id, from_item_id, item_index, sku_id, item_qty, price_out, item_amt, non_std_code, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, remarks, inv_id, cost_price, cost_amt, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.OutboundItemResponse">
+        <id column="item_id" property="itemId"/>
+                <result column="out_id" property="outId" typeHandler="UuidTypeHandler"/>
+                <result column="out_type" property="outType"/>
+                <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
+                <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
+                <result column="item_index" property="itemIndex"/>
+                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+                <result column="item_qty" property="itemQty"/>
+                <result column="price_out" property="priceOut"/>
+                <result column="item_amt" property="itemAmt"/>
+                <result column="non_std_code" property="nonStdCode"/>
+                <result column="out_status" property="outStatus"/>
+                <result column="outing_qty" property="outingQty"/>
+                <result column="outing_amt" property="outingAmt"/>
+                <result column="out_qty" property="outQty"/>
+                <result column="out_amt" property="outAmt"/>
+                <result column="return_qty" property="returnQty"/>
+                <result column="return_amt" property="returnAmt"/>
+                <result column="remarks" property="remarks"/>
+                <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
+                <result column="cost_price" property="costPrice"/>
+                <result column="cost_amt" property="costAmt"/>
+                <result column="flg_valid" property="flgValid"/>
+                <result column="cp_id" property="cpId"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="outId != null and outId != ''">
+                AND out_id = #{outId}
+            </if>
+            <if test="outType != null and outType != ''">
+                AND out_type = #{outType}
+            </if>
+            <if test="fromId != null and fromId != ''">
+                AND from_id = #{fromId}
+            </if>
+            <if test="fromItemId != null and fromItemId != ''">
+                AND from_item_id = #{fromItemId}
+            </if>
+            <if test="itemIndex != null">
+                AND item_index = #{itemIndex}
+            </if>
+            <if test="skuId != null and skuId != ''">
+                AND sku_id = #{skuId}
+            </if>
+            <if test="itemQty != null">
+                AND item_qty = #{itemQty}
+            </if>
+            <if test="priceOut != null">
+                AND price_out = #{priceOut}
+            </if>
+            <if test="itemAmt != null">
+                AND item_amt = #{itemAmt}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND non_std_code = #{nonStdCode}
+            </if>
+            <if test="outStatus != null and outStatus != ''">
+                AND out_status = #{outStatus}
+            </if>
+            <if test="outingQty != null">
+                AND outing_qty = #{outingQty}
+            </if>
+            <if test="outingAmt != null">
+                AND outing_amt = #{outingAmt}
+            </if>
+            <if test="outQty != null">
+                AND out_qty = #{outQty}
+            </if>
+            <if test="outAmt != null">
+                AND out_amt = #{outAmt}
+            </if>
+            <if test="returnQty != null">
+                AND return_qty = #{returnQty}
+            </if>
+            <if test="returnAmt != null">
+                AND return_amt = #{returnAmt}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND remarks = #{remarks}
+            </if>
+            <if test="invId != null and invId != ''">
+                AND inv_id = #{invId}
+            </if>
+            <if test="costPrice != null">
+                AND cost_price = #{costPrice}
+            </if>
+            <if test="costAmt != null">
+                AND cost_amt = #{costAmt}
+            </if>
+            <if test="flgValid != null">
+                AND flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND cp_id = #{cpId}
+            </if>
+            <if test="opCreateTime != null">
+                AND op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null and opCreateUserId != ''">
+                AND op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null and opUpdateUserId != ''">
+                AND op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键itemId批量操作 -->
+        WHERE item_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表t_psi_outbound_item,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound_item
+        <include refid="Condition"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_outbound_item,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM t_psi_outbound_item
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_outbound_item的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound_item
+        WHERE item_id = #{itemId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_outbound_item的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound_item
+        WHERE item_id = #{itemId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表t_psi_outbound_item的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound_item
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into t_psi_outbound_item
+        (
+        <trim suffixOverrides=",">
+            out_id,
+            out_type,
+            from_id,
+            from_item_id,
+            item_index,
+            sku_id,
+            item_qty,
+            price_out,
+            item_amt,
+            non_std_code,
+            out_status,
+            outing_qty,
+            outing_amt,
+            out_qty,
+            out_amt,
+            return_qty,
+            return_amt,
+            remarks,
+            inv_id,
+            cost_price,
+            cost_amt,
+            cp_id,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.outId}::uuid,
+                #{item.outType},
+                #{item.fromId}::uuid,
+                #{item.fromItemId}::uuid,
+                #{item.itemIndex},
+                #{item.skuId}::uuid,
+                #{item.itemQty},
+                #{item.priceOut},
+                #{item.itemAmt},
+                #{item.nonStdCode},
+                #{item.outStatus},
+                #{item.outingQty},
+                #{item.outingAmt},
+                #{item.outQty},
+                #{item.outAmt},
+                #{item.returnQty},
+                #{item.returnAmt},
+                #{item.remarks},
+                #{item.invId}::uuid,
+                #{item.costPrice},
+                #{item.costAmt},
+                #{item.cpId},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 14 - 0
src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.java

@@ -0,0 +1,14 @@
+package com.dk.mdm.mapper.ivt;
+
+import com.dk.mdm.model.pojo.ivt.Outbound;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+*  出库单 Mapper
+*/
+@Repository
+public interface OutboundMapper extends BaseMapper<Outbound>{
+	
+}
+

+ 285 - 0
src/main/java/com/dk/mdm/mapper/ivt/OutboundMapper.xml

@@ -0,0 +1,285 @@
+<?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="com.dk.mdm.mapper.ivt.OutboundMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        out_id, out_no, out_type, from_id, from_no, org_id, staff_id, order_id, order_no, into_return_id, into_return_no, cus_id, sup_id, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, into_date, remarks, annex_paths, make_staff, make_time, receivable_id, payable_id, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.ivt.OutboundResponse">
+        <id column="out_id" property="outId"/>
+                <result column="out_no" property="outNo"/>
+                <result column="out_type" property="outType"/>
+                <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
+                <result column="from_no" property="fromNo"/>
+                <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+                <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+                <result column="order_no" property="orderNo"/>
+                <result column="into_return_id" property="intoReturnId" typeHandler="UuidTypeHandler"/>
+                <result column="into_return_no" property="intoReturnNo"/>
+                <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+                <result column="sup_id" property="supId" typeHandler="UuidTypeHandler"/>
+                <result column="out_status" property="outStatus"/>
+                <result column="outing_qty" property="outingQty"/>
+                <result column="outing_amt" property="outingAmt"/>
+                <result column="out_qty" property="outQty"/>
+                <result column="out_amt" property="outAmt"/>
+                <result column="return_qty" property="returnQty"/>
+                <result column="return_amt" property="returnAmt"/>
+            <result column="into_date" property="intoDate" typeHandler="TimestampTypeHandler"/>
+                <result column="remarks" property="remarks"/>
+                <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+                <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="receivable_id" property="receivableId" typeHandler="UuidTypeHandler"/>
+                <result column="payable_id" property="payableId" typeHandler="UuidTypeHandler"/>
+                <result column="flg_valid" property="flgValid"/>
+                <result column="cp_id" property="cpId"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="outNo != null and outNo != ''">
+                AND out_no = #{outNo}
+            </if>
+            <if test="outType != null and outType != ''">
+                AND out_type = #{outType}
+            </if>
+            <if test="fromId != null and fromId != ''">
+                AND from_id = #{fromId}
+            </if>
+            <if test="fromNo != null and fromNo != ''">
+                AND from_no = #{fromNo}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                AND org_id = #{orgId}
+            </if>
+            <if test="staffId != null and staffId != ''">
+                AND staff_id = #{staffId}
+            </if>
+            <if test="orderId != null and orderId != ''">
+                AND order_id = #{orderId}
+            </if>
+            <if test="orderNo != null and orderNo != ''">
+                AND order_no = #{orderNo}
+            </if>
+            <if test="intoReturnId != null and intoReturnId != ''">
+                AND into_return_id = #{intoReturnId}
+            </if>
+            <if test="intoReturnNo != null and intoReturnNo != ''">
+                AND into_return_no = #{intoReturnNo}
+            </if>
+            <if test="cusId != null and cusId != ''">
+                AND cus_id = #{cusId}
+            </if>
+            <if test="supId != null and supId != ''">
+                AND sup_id = #{supId}
+            </if>
+            <if test="outStatus != null and outStatus != ''">
+                AND out_status = #{outStatus}
+            </if>
+            <if test="outingQty != null">
+                AND outing_qty = #{outingQty}
+            </if>
+            <if test="outingAmt != null">
+                AND outing_amt = #{outingAmt}
+            </if>
+            <if test="outQty != null">
+                AND out_qty = #{outQty}
+            </if>
+            <if test="outAmt != null">
+                AND out_amt = #{outAmt}
+            </if>
+            <if test="returnQty != null">
+                AND return_qty = #{returnQty}
+            </if>
+            <if test="returnAmt != null">
+                AND return_amt = #{returnAmt}
+            </if>
+            <if test="intoDate != null">
+                AND into_date = #{intoDate}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND remarks = #{remarks}
+            </if>
+            <if test="annexPaths != null and annexPaths != ''">
+                AND annex_paths = #{annexPaths}
+            </if>
+            <if test="makeStaff != null and makeStaff != ''">
+                AND make_staff = #{makeStaff}
+            </if>
+            <if test="makeTime != null">
+                AND make_time = #{makeTime}
+            </if>
+            <if test="receivableId != null and receivableId != ''">
+                AND receivable_id = #{receivableId}
+            </if>
+            <if test="payableId != null and payableId != ''">
+                AND payable_id = #{payableId}
+            </if>
+            <if test="flgValid != null">
+                AND flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND cp_id = #{cpId}
+            </if>
+            <if test="opCreateTime != null">
+                AND op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null and opCreateUserId != ''">
+                AND op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null and opUpdateUserId != ''">
+                AND op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键outId批量操作 -->
+        WHERE out_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表t_psi_outbound,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound
+        <include refid="Condition"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_outbound,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM t_psi_outbound
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_outbound的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound
+        WHERE out_id = #{outId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_outbound的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound
+        WHERE out_id = #{outId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表t_psi_outbound的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_outbound
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into t_psi_outbound
+        (
+        <trim suffixOverrides=",">
+            out_no,
+            out_type,
+            from_id,
+            from_no,
+            org_id,
+            staff_id,
+            order_id,
+            order_no,
+            into_return_id,
+            into_return_no,
+            cus_id,
+            sup_id,
+            out_status,
+            outing_qty,
+            outing_amt,
+            out_qty,
+            out_amt,
+            return_qty,
+            return_amt,
+            into_date,
+            remarks,
+            annex_paths,
+            make_staff,
+            make_time,
+            receivable_id,
+            payable_id,
+            cp_id,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.outNo},
+                #{item.outType},
+                #{item.fromId}::uuid,
+                #{item.fromNo},
+                #{item.orgId}::uuid,
+                #{item.staffId}::uuid,
+                #{item.orderId}::uuid,
+                #{item.orderNo},
+                #{item.intoReturnId}::uuid,
+                #{item.intoReturnNo},
+                #{item.cusId}::uuid,
+                #{item.supId}::uuid,
+                #{item.outStatus},
+                #{item.outingQty},
+                #{item.outingAmt},
+                #{item.outQty},
+                #{item.outAmt},
+                #{item.returnQty},
+                #{item.returnAmt},
+                #{item.intoDate},
+                #{item.remarks},
+                #{item.annexPaths},
+                #{item.makeStaff}::uuid,
+                #{item.makeTime},
+                #{item.receivableId}::uuid,
+                #{item.payableId}::uuid,
+                #{item.cpId},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 14 - 0
src/main/java/com/dk/mdm/mapper/sale/OutReturnItemMapper.java

@@ -0,0 +1,14 @@
+package com.dk.mdm.mapper.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturnItem;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+*  出库退货明细 Mapper
+*/
+@Repository
+public interface OutReturnItemMapper extends BaseMapper<OutReturnItem>{
+	
+}
+

+ 243 - 0
src/main/java/com/dk/mdm/mapper/sale/OutReturnItemMapper.xml

@@ -0,0 +1,243 @@
+<?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="com.dk.mdm.mapper.sale.OutReturnItemMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        item_id, return_id, out_id, out_item_id, order_id, order_item_id, item_index, sku_id, item_qty, price_std, amt_std, price_return, item_amt, non_std_code, into_status, intoing_qty, intoing_amt, into_qty, into_amt, remarks, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.sale.OutReturnItemResponse">
+        <id column="item_id" property="itemId"/>
+                <result column="return_id" property="returnId" typeHandler="UuidTypeHandler"/>
+                <result column="out_id" property="outId" typeHandler="UuidTypeHandler"/>
+                <result column="out_item_id" property="outItemId" typeHandler="UuidTypeHandler"/>
+                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+                <result column="order_item_id" property="orderItemId" typeHandler="UuidTypeHandler"/>
+                <result column="item_index" property="itemIndex"/>
+                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+                <result column="item_qty" property="itemQty"/>
+                <result column="price_std" property="priceStd"/>
+                <result column="amt_std" property="amtStd"/>
+                <result column="price_return" property="priceReturn"/>
+                <result column="item_amt" property="itemAmt"/>
+                <result column="non_std_code" property="nonStdCode"/>
+                <result column="into_status" property="intoStatus"/>
+                <result column="intoing_qty" property="intoingQty"/>
+                <result column="intoing_amt" property="intoingAmt"/>
+                <result column="into_qty" property="intoQty"/>
+                <result column="into_amt" property="intoAmt"/>
+                <result column="remarks" property="remarks"/>
+                <result column="flg_valid" property="flgValid"/>
+                <result column="cp_id" property="cpId"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="returnId != null and returnId != ''">
+                AND return_id = #{returnId}
+            </if>
+            <if test="outId != null and outId != ''">
+                AND out_id = #{outId}
+            </if>
+            <if test="outItemId != null and outItemId != ''">
+                AND out_item_id = #{outItemId}
+            </if>
+            <if test="orderId != null and orderId != ''">
+                AND order_id = #{orderId}
+            </if>
+            <if test="orderItemId != null and orderItemId != ''">
+                AND order_item_id = #{orderItemId}
+            </if>
+            <if test="itemIndex != null">
+                AND item_index = #{itemIndex}
+            </if>
+            <if test="skuId != null and skuId != ''">
+                AND sku_id = #{skuId}
+            </if>
+            <if test="itemQty != null">
+                AND item_qty = #{itemQty}
+            </if>
+            <if test="priceStd != null">
+                AND price_std = #{priceStd}
+            </if>
+            <if test="amtStd != null">
+                AND amt_std = #{amtStd}
+            </if>
+            <if test="priceReturn != null">
+                AND price_return = #{priceReturn}
+            </if>
+            <if test="itemAmt != null">
+                AND item_amt = #{itemAmt}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND non_std_code = #{nonStdCode}
+            </if>
+            <if test="intoStatus != null and intoStatus != ''">
+                AND into_status = #{intoStatus}
+            </if>
+            <if test="intoingQty != null">
+                AND intoing_qty = #{intoingQty}
+            </if>
+            <if test="intoingAmt != null">
+                AND intoing_amt = #{intoingAmt}
+            </if>
+            <if test="intoQty != null">
+                AND into_qty = #{intoQty}
+            </if>
+            <if test="intoAmt != null">
+                AND into_amt = #{intoAmt}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND remarks = #{remarks}
+            </if>
+            <if test="flgValid != null">
+                AND flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND cp_id = #{cpId}
+            </if>
+            <if test="opCreateTime != null">
+                AND op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null and opCreateUserId != ''">
+                AND op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null and opUpdateUserId != ''">
+                AND op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键itemId批量操作 -->
+        WHERE item_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表t_psi_out_return_item,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return_item
+        <include refid="Condition"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_out_return_item,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM t_psi_out_return_item
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_out_return_item的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return_item
+        WHERE item_id = #{itemId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_out_return_item的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return_item
+        WHERE item_id = #{itemId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表t_psi_out_return_item的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return_item
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into t_psi_out_return_item
+        (
+        <trim suffixOverrides=",">
+            return_id,
+            out_id,
+            out_item_id,
+            order_id,
+            order_item_id,
+            item_index,
+            sku_id,
+            item_qty,
+            price_std,
+            amt_std,
+            price_return,
+            item_amt,
+            non_std_code,
+            into_status,
+            intoing_qty,
+            intoing_amt,
+            into_qty,
+            into_amt,
+            remarks,
+            cp_id,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.returnId}::uuid,
+                #{item.outId}::uuid,
+                #{item.outItemId}::uuid,
+                #{item.orderId}::uuid,
+                #{item.orderItemId}::uuid,
+                #{item.itemIndex},
+                #{item.skuId}::uuid,
+                #{item.itemQty},
+                #{item.priceStd},
+                #{item.amtStd},
+                #{item.priceReturn},
+                #{item.itemAmt},
+                #{item.nonStdCode},
+                #{item.intoStatus},
+                #{item.intoingQty},
+                #{item.intoingAmt},
+                #{item.intoQty},
+                #{item.intoAmt},
+                #{item.remarks},
+                #{item.cpId},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 14 - 0
src/main/java/com/dk/mdm/mapper/sale/OutReturnMapper.java

@@ -0,0 +1,14 @@
+package com.dk.mdm.mapper.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturn;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+*  出库退货 Mapper
+*/
+@Repository
+public interface OutReturnMapper extends BaseMapper<OutReturn>{
+	
+}
+

+ 339 - 0
src/main/java/com/dk/mdm/mapper/sale/OutReturnMapper.xml

@@ -0,0 +1,339 @@
+<?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="com.dk.mdm.mapper.sale.OutReturnMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        return_id, return_no, return_type, out_id, order_id, out_no, order_no, org_id, staff_id, cus_id, address_area, address_name, address_no, address_gcj02, address_full, contact_name, contact_phone, sales_channel, pickup_date, sum_quantity, sum_standard, sum_amount, sale_discount, return_status, into_status, intoing_qty, intoing_amt, into_qty, into_amt, amt_receivable, amt_handle, amt_residue, remarks, annex_paths, make_staff, make_time, flg_valid, cp_id, op_create_time, op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.sale.OutReturnResponse">
+        <id column="return_id" property="returnId"/>
+                <result column="return_no" property="returnNo"/>
+                <result column="return_type" property="returnType"/>
+                <result column="out_id" property="outId" typeHandler="UuidTypeHandler"/>
+                <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
+                <result column="out_no" property="outNo"/>
+                <result column="order_no" property="orderNo"/>
+                <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+                <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+                <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
+                <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
+                <result column="address_name" property="addressName"/>
+                <result column="address_no" property="addressNo"/>
+                <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
+                <result column="address_full" property="addressFull"/>
+                <result column="contact_name" property="contactName"/>
+                <result column="contact_phone" property="contactPhone"/>
+                <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
+            <result column="pickup_date" property="pickupDate" typeHandler="TimestampTypeHandler"/>
+                <result column="sum_quantity" property="sumQuantity"/>
+                <result column="sum_standard" property="sumStandard"/>
+                <result column="sum_amount" property="sumAmount"/>
+                <result column="sale_discount" property="saleDiscount"/>
+                <result column="return_status" property="returnStatus"/>
+                <result column="into_status" property="intoStatus"/>
+                <result column="intoing_qty" property="intoingQty"/>
+                <result column="intoing_amt" property="intoingAmt"/>
+                <result column="into_qty" property="intoQty"/>
+                <result column="into_amt" property="intoAmt"/>
+                <result column="amt_receivable" property="amtReceivable"/>
+                <result column="amt_handle" property="amtHandle"/>
+                <result column="amt_residue" property="amtResidue"/>
+                <result column="remarks" property="remarks"/>
+                <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
+                <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
+            <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="flg_valid" property="flgValid"/>
+                <result column="cp_id" property="cpId"/>
+            <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
+            <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
+                <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
+                <result column="op_app_code" property="opAppCode"/>
+            <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
+                <result column="op_db_user" property="opDbUser"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="returnNo != null and returnNo != ''">
+                AND return_no = #{returnNo}
+            </if>
+            <if test="returnType != null and returnType != ''">
+                AND return_type = #{returnType}
+            </if>
+            <if test="outId != null and outId != ''">
+                AND out_id = #{outId}
+            </if>
+            <if test="orderId != null and orderId != ''">
+                AND order_id = #{orderId}
+            </if>
+            <if test="outNo != null and outNo != ''">
+                AND out_no = #{outNo}
+            </if>
+            <if test="orderNo != null and orderNo != ''">
+                AND order_no = #{orderNo}
+            </if>
+            <if test="orgId != null and orgId != ''">
+                AND org_id = #{orgId}
+            </if>
+            <if test="staffId != null and staffId != ''">
+                AND staff_id = #{staffId}
+            </if>
+            <if test="cusId != null and cusId != ''">
+                AND cus_id = #{cusId}
+            </if>
+            <if test="addressArea != null and addressArea != ''">
+                AND address_area = #{addressArea}
+            </if>
+            <if test="addressName != null and addressName != ''">
+                AND address_name = #{addressName}
+            </if>
+            <if test="addressNo != null and addressNo != ''">
+                AND address_no = #{addressNo}
+            </if>
+            <if test="addressGcj02 != null and addressGcj02 != ''">
+                AND address_gcj02 = #{addressGcj02}
+            </if>
+            <if test="addressFull != null and addressFull != ''">
+                AND address_full = #{addressFull}
+            </if>
+            <if test="contactName != null and contactName != ''">
+                AND contact_name = #{contactName}
+            </if>
+            <if test="contactPhone != null and contactPhone != ''">
+                AND contact_phone = #{contactPhone}
+            </if>
+            <if test="salesChannel != null and salesChannel != ''">
+                AND sales_channel = #{salesChannel}
+            </if>
+            <if test="pickupDate != null">
+                AND pickup_date = #{pickupDate}
+            </if>
+            <if test="sumQuantity != null">
+                AND sum_quantity = #{sumQuantity}
+            </if>
+            <if test="sumStandard != null">
+                AND sum_standard = #{sumStandard}
+            </if>
+            <if test="sumAmount != null">
+                AND sum_amount = #{sumAmount}
+            </if>
+            <if test="saleDiscount != null">
+                AND sale_discount = #{saleDiscount}
+            </if>
+            <if test="returnStatus != null and returnStatus != ''">
+                AND return_status = #{returnStatus}
+            </if>
+            <if test="intoStatus != null and intoStatus != ''">
+                AND into_status = #{intoStatus}
+            </if>
+            <if test="intoingQty != null">
+                AND intoing_qty = #{intoingQty}
+            </if>
+            <if test="intoingAmt != null">
+                AND intoing_amt = #{intoingAmt}
+            </if>
+            <if test="intoQty != null">
+                AND into_qty = #{intoQty}
+            </if>
+            <if test="intoAmt != null">
+                AND into_amt = #{intoAmt}
+            </if>
+            <if test="amtReceivable != null">
+                AND amt_receivable = #{amtReceivable}
+            </if>
+            <if test="amtHandle != null">
+                AND amt_handle = #{amtHandle}
+            </if>
+            <if test="amtResidue != null">
+                AND amt_residue = #{amtResidue}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND remarks = #{remarks}
+            </if>
+            <if test="annexPaths != null and annexPaths != ''">
+                AND annex_paths = #{annexPaths}
+            </if>
+            <if test="makeStaff != null and makeStaff != ''">
+                AND make_staff = #{makeStaff}
+            </if>
+            <if test="makeTime != null">
+                AND make_time = #{makeTime}
+            </if>
+            <if test="flgValid != null">
+                AND flg_valid = #{flgValid}
+            </if>
+            <if test="cpId != null">
+                AND cp_id = #{cpId}
+            </if>
+            <if test="opCreateTime != null">
+                AND op_create_time = #{opCreateTime}
+            </if>
+            <if test="opCreateUserId != null and opCreateUserId != ''">
+                AND op_create_user_id = #{opCreateUserId}
+            </if>
+            <if test="opUpdateTime != null">
+                AND op_update_time = #{opUpdateTime}
+            </if>
+            <if test="opUpdateUserId != null and opUpdateUserId != ''">
+                AND op_update_user_id = #{opUpdateUserId}
+            </if>
+            <if test="opAppCode != null and opAppCode != ''">
+                AND op_app_code = #{opAppCode}
+            </if>
+            <if test="opTimestamp != null">
+                AND op_timestamp = #{opTimestamp}
+            </if>
+            <if test="opDbUser != null and opDbUser != ''">
+                AND op_db_user = #{opDbUser}
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键returnId批量操作 -->
+        WHERE return_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表t_psi_out_return,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return
+        <include refid="Condition"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_out_return,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM t_psi_out_return
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_out_return的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return
+        WHERE return_id = #{returnId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_out_return的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return
+        WHERE return_id = #{returnId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表t_psi_out_return的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_out_return
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into t_psi_out_return
+        (
+        <trim suffixOverrides=",">
+            return_no,
+            return_type,
+            out_id,
+            order_id,
+            out_no,
+            order_no,
+            org_id,
+            staff_id,
+            cus_id,
+            address_area,
+            address_name,
+            address_no,
+            address_gcj02,
+            address_full,
+            contact_name,
+            contact_phone,
+            sales_channel,
+            pickup_date,
+            sum_quantity,
+            sum_standard,
+            sum_amount,
+            sale_discount,
+            return_status,
+            into_status,
+            intoing_qty,
+            intoing_amt,
+            into_qty,
+            into_amt,
+            amt_receivable,
+            amt_handle,
+            amt_residue,
+            remarks,
+            annex_paths,
+            make_staff,
+            make_time,
+            cp_id,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.returnNo},
+                #{item.returnType},
+                #{item.outId}::uuid,
+                #{item.orderId}::uuid,
+                #{item.outNo},
+                #{item.orderNo},
+                #{item.orgId}::uuid,
+                #{item.staffId}::uuid,
+                #{item.cusId}::uuid,
+                #{item.addressArea},
+                #{item.addressName},
+                #{item.addressNo},
+                #{item.addressGcj02},
+                #{item.addressFull},
+                #{item.contactName},
+                #{item.contactPhone},
+                #{item.salesChannel}::uuid,
+                #{item.pickupDate},
+                #{item.sumQuantity},
+                #{item.sumStandard},
+                #{item.sumAmount},
+                #{item.saleDiscount},
+                #{item.returnStatus},
+                #{item.intoStatus},
+                #{item.intoingQty},
+                #{item.intoingAmt},
+                #{item.intoQty},
+                #{item.intoAmt},
+                #{item.amtReceivable},
+                #{item.amtHandle},
+                #{item.amtResidue},
+                #{item.remarks},
+                #{item.annexPaths},
+                #{item.makeStaff}::uuid,
+                #{item.makeTime},
+                #{item.cpId},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 366 - 0
src/main/java/com/dk/mdm/model/pojo/ivt/Outbound.java

@@ -0,0 +1,366 @@
+package com.dk.mdm.model.pojo.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  出库单
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库单")
+@TableName(value = "t_psi_outbound", autoResultMap = true)
+@ApiModel(value="实体类:出库单", description="表名:t_psi_outbound")
+public class Outbound extends PageInfo<Outbound> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 出库单ID
+     */
+//    @TableId(value = "out_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 出库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单号
+     */
+    @Excel(name = "来源单号")
+    @ApiModelProperty(value = "来源单号")
+    private String fromNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 入库退货单ID
+     */
+    @Excel(name = "入库退货单ID")
+    @ApiModelProperty(value = "入库退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoReturnId;
+
+
+    /**
+     * 入库退货单号
+     */
+    @Excel(name = "入库退货单号")
+    @ApiModelProperty(value = "入库退货单号")
+    private String intoReturnNo;
+
+
+    /**
+     * 客户
+     */
+    @Excel(name = "客户")
+    @ApiModelProperty(value = "客户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 供应商
+     */
+    @Excel(name = "供应商")
+    @ApiModelProperty(value = "供应商")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String supId;
+
+
+    /**
+     * 出库状态 (【系统字典】)
+     */
+    @Excel(name = "出库状态 (【系统字典】)")
+    @ApiModelProperty(value = "出库状态 (【系统字典】)")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 出库日期
+     */
+    @Excel(name = "出库日期")
+    @ApiModelProperty(value = "出库日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime intoDate;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 应收款单
+     */
+    @Excel(name = "应收款单")
+    @ApiModelProperty(value = "应收款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String receivableId;
+
+
+    /**
+     * 应付款单
+     */
+    @Excel(name = "应付款单")
+    @ApiModelProperty(value = "应付款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String payableId;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 316 - 0
src/main/java/com/dk/mdm/model/pojo/ivt/OutboundItem.java

@@ -0,0 +1,316 @@
+package com.dk.mdm.model.pojo.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  出库明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库明细")
+@TableName(value = "t_psi_outbound_item", autoResultMap = true)
+@ApiModel(value="实体类:出库明细", description="表名:t_psi_outbound_item")
+public class OutboundItem extends PageInfo<OutboundItem> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 出库ID
+     */
+    @Excel(name = "出库ID")
+    @ApiModelProperty(value = "出库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 入库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单明细ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单明细ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单明细ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 出库价
+     */
+    @Excel(name = "出库价")
+    @ApiModelProperty(value = "出库价")
+    private BigDecimal priceOut;
+
+
+    /**
+     * 出库金额 (商品数量*入库价)
+     */
+    @Excel(name = "出库金额 (商品数量*入库价)")
+    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 出库状态
+     */
+    @Excel(name = "出库状态")
+    @ApiModelProperty(value = "出库状态")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 库存ID
+     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
+
+
+    /**
+     * 成本单价
+     */
+    @Excel(name = "成本单价")
+    @ApiModelProperty(value = "成本单价")
+    private BigDecimal costPrice;
+
+
+    /**
+     * 成本金额
+     */
+    @Excel(name = "成本金额")
+    @ApiModelProperty(value = "成本金额")
+    private BigDecimal costAmt;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 1 - 1
src/main/java/com/dk/mdm/model/pojo/sale/OrderItem.java

@@ -41,7 +41,7 @@ public class OrderItem extends PageInfo<OrderItem> implements Serializable {
     /**
      * 明细ID
      */
-    @TableId(value = "item_id", type = IdType.AUTO)
+//    @TableId(value = "item_id", type = IdType.AUTO)
     @ApiModelProperty(value = "明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String itemId;

+ 437 - 0
src/main/java/com/dk/mdm/model/pojo/sale/OutReturn.java

@@ -0,0 +1,437 @@
+package com.dk.mdm.model.pojo.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货")
+@TableName(value = "t_psi_out_return", autoResultMap = true)
+@ApiModel(value="实体类:出库退货", description="表名:t_psi_out_return")
+public class OutReturn extends PageInfo<OutReturn> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 退货单ID
+     */
+//    @TableId(value = "return_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 退货单号
+     */
+    @Excel(name = "退货单号")
+    @ApiModelProperty(value = "退货单号")
+    private String returnNo;
+
+
+    /**
+     * 退货类型 (【系统字典】销售退货)
+     */
+    @Excel(name = "退货类型 (【系统字典】销售退货)")
+    @ApiModelProperty(value = "退货类型 (【系统字典】销售退货)")
+    private String returnType;
+
+
+    /**
+     * 出库单
+     */
+    @Excel(name = "出库单")
+    @ApiModelProperty(value = "出库单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 销售订单
+     */
+    @Excel(name = "销售订单")
+    @ApiModelProperty(value = "销售订单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 客户ID
+     */
+    @Excel(name = "客户ID")
+    @ApiModelProperty(value = "客户ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 行政区划 (a1:省 a2:市 a3:区)
+     */
+    @Excel(name = "行政区划 (a1:省 a2:市 a3:区)")
+    @ApiModelProperty(value = "行政区划 (a1:省 a2:市 a3:区)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressArea;
+
+
+    /**
+     * 小区或POI
+     */
+    @Excel(name = "小区或POI")
+    @ApiModelProperty(value = "小区或POI")
+    private String addressName;
+
+
+    /**
+     * 门牌号
+     */
+    @Excel(name = "门牌号")
+    @ApiModelProperty(value = "门牌号")
+    private String addressNo;
+
+
+    /**
+     * 地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)
+     */
+    @Excel(name = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @ApiModelProperty(value = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressGcj02;
+
+
+    /**
+     * 详细地址
+     */
+    @Excel(name = "详细地址")
+    @ApiModelProperty(value = "详细地址")
+    private String addressFull;
+
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    @ApiModelProperty(value = "联系电话")
+    private String contactPhone;
+
+
+    /**
+     * 销售渠道
+     */
+    @Excel(name = "销售渠道")
+    @ApiModelProperty(value = "销售渠道")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String salesChannel;
+
+
+    /**
+     * 取货日期
+     */
+    @Excel(name = "取货日期")
+    @ApiModelProperty(value = "取货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime pickupDate;
+
+
+    /**
+     * 商品总数量
+     */
+    @Excel(name = "商品总数量")
+    @ApiModelProperty(value = "商品总数量")
+    private BigDecimal sumQuantity;
+
+
+    /**
+     * 标价合计
+     */
+    @Excel(name = "标价合计")
+    @ApiModelProperty(value = "标价合计")
+    private BigDecimal sumStandard;
+
+
+    /**
+     * 合计金额
+     */
+    @Excel(name = "合计金额")
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal sumAmount;
+
+
+    /**
+     * 销售折扣 (合计金额/标价合计)
+     */
+    @Excel(name = "销售折扣 (合计金额/标价合计)")
+    @ApiModelProperty(value = "销售折扣 (合计金额/标价合计)")
+    private BigDecimal saleDiscount;
+
+
+    /**
+     * 退货状态 (【系统字典】)
+     */
+    @Excel(name = "退货状态 (【系统字典】)")
+    @ApiModelProperty(value = "退货状态 (【系统字典】)")
+    private String returnStatus;
+
+
+    /**
+     * 入库状态 (【系统字典】)
+     */
+    @Excel(name = "入库状态 (【系统字典】)")
+    @ApiModelProperty(value = "入库状态 (【系统字典】)")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 应收金额
+     */
+    @Excel(name = "应收金额")
+    @ApiModelProperty(value = "应收金额")
+    private BigDecimal amtReceivable;
+
+
+    /**
+     * 还款金额
+     */
+    @Excel(name = "还款金额")
+    @ApiModelProperty(value = "还款金额")
+    private BigDecimal amtHandle;
+
+
+    /**
+     * 剩余应收
+     */
+    @Excel(name = "剩余应收")
+    @ApiModelProperty(value = "剩余应收")
+    private BigDecimal amtResidue;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 301 - 0
src/main/java/com/dk/mdm/model/pojo/sale/OutReturnItem.java

@@ -0,0 +1,301 @@
+package com.dk.mdm.model.pojo.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货明细")
+@TableName(value = "t_psi_out_return_item", autoResultMap = true)
+@ApiModel(value="实体类:出库退货明细", description="表名:t_psi_out_return_item")
+public class OutReturnItem extends PageInfo<OutReturnItem> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 退货单ID
+     */
+    @Excel(name = "退货单ID")
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 出库单ID
+     */
+    @Excel(name = "出库单ID")
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单明细ID
+     */
+    @Excel(name = "出库单明细ID")
+    @ApiModelProperty(value = "出库单明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outItemId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售明细ID
+     */
+    @Excel(name = "销售明细ID")
+    @ApiModelProperty(value = "销售明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 标价
+     */
+    @Excel(name = "标价")
+    @ApiModelProperty(value = "标价")
+    private BigDecimal priceStd;
+
+
+    /**
+     * 标价金额 (商品数量*标价)
+     */
+    @Excel(name = "标价金额 (商品数量*标价)")
+    @ApiModelProperty(value = "标价金额 (商品数量*标价)")
+    private BigDecimal amtStd;
+
+
+    /**
+     * 退货价
+     */
+    @Excel(name = "退货价")
+    @ApiModelProperty(value = "退货价")
+    private BigDecimal priceReturn;
+
+
+    /**
+     * 退货金额 (商品数量*退货价)
+     */
+    @Excel(name = "退货金额 (商品数量*退货价)")
+    @ApiModelProperty(value = "退货金额 (商品数量*退货价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 入库状态
+     */
+    @Excel(name = "入库状态")
+    @ApiModelProperty(value = "入库状态")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 315 - 0
src/main/java/com/dk/mdm/model/query/ivt/OutboundItemQuery.java

@@ -0,0 +1,315 @@
+package com.dk.mdm.model.query.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库明细")
+@TableName(value = "t_psi_outbound_item", autoResultMap = true)
+@ApiModel(value="实体类:出库明细", description="表名:t_psi_outbound_item")
+public class OutboundItemQuery extends PageInfo<OutboundItemQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 出库ID
+     */
+    @Excel(name = "出库ID")
+    @ApiModelProperty(value = "出库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 入库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单明细ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单明细ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单明细ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 出库价
+     */
+    @Excel(name = "出库价")
+    @ApiModelProperty(value = "出库价")
+    private BigDecimal priceOut;
+
+
+    /**
+     * 出库金额 (商品数量*入库价)
+     */
+    @Excel(name = "出库金额 (商品数量*入库价)")
+    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 出库状态
+     */
+    @Excel(name = "出库状态")
+    @ApiModelProperty(value = "出库状态")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 库存ID
+     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
+
+
+    /**
+     * 成本单价
+     */
+    @Excel(name = "成本单价")
+    @ApiModelProperty(value = "成本单价")
+    private BigDecimal costPrice;
+
+
+    /**
+     * 成本金额
+     */
+    @Excel(name = "成本金额")
+    @ApiModelProperty(value = "成本金额")
+    private BigDecimal costAmt;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 367 - 0
src/main/java/com/dk/mdm/model/query/ivt/OutboundQuery.java

@@ -0,0 +1,367 @@
+package com.dk.mdm.model.query.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库单
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库单")
+@TableName(value = "t_psi_outbound", autoResultMap = true)
+@ApiModel(value="实体类:出库单", description="表名:t_psi_outbound")
+public class OutboundQuery extends PageInfo<OutboundQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 出库单ID
+     */
+//    @TableId(value = "out_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 出库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单号
+     */
+    @Excel(name = "来源单号")
+    @ApiModelProperty(value = "来源单号")
+    private String fromNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 入库退货单ID
+     */
+    @Excel(name = "入库退货单ID")
+    @ApiModelProperty(value = "入库退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoReturnId;
+
+
+    /**
+     * 入库退货单号
+     */
+    @Excel(name = "入库退货单号")
+    @ApiModelProperty(value = "入库退货单号")
+    private String intoReturnNo;
+
+
+    /**
+     * 客户
+     */
+    @Excel(name = "客户")
+    @ApiModelProperty(value = "客户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 供应商
+     */
+    @Excel(name = "供应商")
+    @ApiModelProperty(value = "供应商")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String supId;
+
+
+    /**
+     * 出库状态 (【系统字典】)
+     */
+    @Excel(name = "出库状态 (【系统字典】)")
+    @ApiModelProperty(value = "出库状态 (【系统字典】)")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 出库日期
+     */
+    @Excel(name = "出库日期")
+    @ApiModelProperty(value = "出库日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime intoDate;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 应收款单
+     */
+    @Excel(name = "应收款单")
+    @ApiModelProperty(value = "应收款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String receivableId;
+
+
+    /**
+     * 应付款单
+     */
+    @Excel(name = "应付款单")
+    @ApiModelProperty(value = "应付款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String payableId;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 300 - 0
src/main/java/com/dk/mdm/model/query/sale/OutReturnItemQuery.java

@@ -0,0 +1,300 @@
+package com.dk.mdm.model.query.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货明细")
+@TableName(value = "t_psi_out_return_item", autoResultMap = true)
+@ApiModel(value="实体类:出库退货明细", description="表名:t_psi_out_return_item")
+public class OutReturnItemQuery extends PageInfo<OutReturnItemQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 退货单ID
+     */
+    @Excel(name = "退货单ID")
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 出库单ID
+     */
+    @Excel(name = "出库单ID")
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单明细ID
+     */
+    @Excel(name = "出库单明细ID")
+    @ApiModelProperty(value = "出库单明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outItemId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售明细ID
+     */
+    @Excel(name = "销售明细ID")
+    @ApiModelProperty(value = "销售明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 标价
+     */
+    @Excel(name = "标价")
+    @ApiModelProperty(value = "标价")
+    private BigDecimal priceStd;
+
+
+    /**
+     * 标价金额 (商品数量*标价)
+     */
+    @Excel(name = "标价金额 (商品数量*标价)")
+    @ApiModelProperty(value = "标价金额 (商品数量*标价)")
+    private BigDecimal amtStd;
+
+
+    /**
+     * 退货价
+     */
+    @Excel(name = "退货价")
+    @ApiModelProperty(value = "退货价")
+    private BigDecimal priceReturn;
+
+
+    /**
+     * 退货金额 (商品数量*退货价)
+     */
+    @Excel(name = "退货金额 (商品数量*退货价)")
+    @ApiModelProperty(value = "退货金额 (商品数量*退货价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 入库状态
+     */
+    @Excel(name = "入库状态")
+    @ApiModelProperty(value = "入库状态")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 438 - 0
src/main/java/com/dk/mdm/model/query/sale/OutReturnQuery.java

@@ -0,0 +1,438 @@
+package com.dk.mdm.model.query.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货")
+@TableName(value = "t_psi_out_return", autoResultMap = true)
+@ApiModel(value="实体类:出库退货", description="表名:t_psi_out_return")
+public class OutReturnQuery extends PageInfo<OutReturnQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 退货单ID
+     */
+//    @TableId(value = "return_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 退货单号
+     */
+    @Excel(name = "退货单号")
+    @ApiModelProperty(value = "退货单号")
+    private String returnNo;
+
+
+    /**
+     * 退货类型 (【系统字典】销售退货)
+     */
+    @Excel(name = "退货类型 (【系统字典】销售退货)")
+    @ApiModelProperty(value = "退货类型 (【系统字典】销售退货)")
+    private String returnType;
+
+
+    /**
+     * 出库单
+     */
+    @Excel(name = "出库单")
+    @ApiModelProperty(value = "出库单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 销售订单
+     */
+    @Excel(name = "销售订单")
+    @ApiModelProperty(value = "销售订单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 客户ID
+     */
+    @Excel(name = "客户ID")
+    @ApiModelProperty(value = "客户ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 行政区划 (a1:省 a2:市 a3:区)
+     */
+    @Excel(name = "行政区划 (a1:省 a2:市 a3:区)")
+    @ApiModelProperty(value = "行政区划 (a1:省 a2:市 a3:区)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressArea;
+
+
+    /**
+     * 小区或POI
+     */
+    @Excel(name = "小区或POI")
+    @ApiModelProperty(value = "小区或POI")
+    private String addressName;
+
+
+    /**
+     * 门牌号
+     */
+    @Excel(name = "门牌号")
+    @ApiModelProperty(value = "门牌号")
+    private String addressNo;
+
+
+    /**
+     * 地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)
+     */
+    @Excel(name = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @ApiModelProperty(value = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressGcj02;
+
+
+    /**
+     * 详细地址
+     */
+    @Excel(name = "详细地址")
+    @ApiModelProperty(value = "详细地址")
+    private String addressFull;
+
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    @ApiModelProperty(value = "联系电话")
+    private String contactPhone;
+
+
+    /**
+     * 销售渠道
+     */
+    @Excel(name = "销售渠道")
+    @ApiModelProperty(value = "销售渠道")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String salesChannel;
+
+
+    /**
+     * 取货日期
+     */
+    @Excel(name = "取货日期")
+    @ApiModelProperty(value = "取货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime pickupDate;
+
+
+    /**
+     * 商品总数量
+     */
+    @Excel(name = "商品总数量")
+    @ApiModelProperty(value = "商品总数量")
+    private BigDecimal sumQuantity;
+
+
+    /**
+     * 标价合计
+     */
+    @Excel(name = "标价合计")
+    @ApiModelProperty(value = "标价合计")
+    private BigDecimal sumStandard;
+
+
+    /**
+     * 合计金额
+     */
+    @Excel(name = "合计金额")
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal sumAmount;
+
+
+    /**
+     * 销售折扣 (合计金额/标价合计)
+     */
+    @Excel(name = "销售折扣 (合计金额/标价合计)")
+    @ApiModelProperty(value = "销售折扣 (合计金额/标价合计)")
+    private BigDecimal saleDiscount;
+
+
+    /**
+     * 退货状态 (【系统字典】)
+     */
+    @Excel(name = "退货状态 (【系统字典】)")
+    @ApiModelProperty(value = "退货状态 (【系统字典】)")
+    private String returnStatus;
+
+
+    /**
+     * 入库状态 (【系统字典】)
+     */
+    @Excel(name = "入库状态 (【系统字典】)")
+    @ApiModelProperty(value = "入库状态 (【系统字典】)")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 应收金额
+     */
+    @Excel(name = "应收金额")
+    @ApiModelProperty(value = "应收金额")
+    private BigDecimal amtReceivable;
+
+
+    /**
+     * 还款金额
+     */
+    @Excel(name = "还款金额")
+    @ApiModelProperty(value = "还款金额")
+    private BigDecimal amtHandle;
+
+
+    /**
+     * 剩余应收
+     */
+    @Excel(name = "剩余应收")
+    @ApiModelProperty(value = "剩余应收")
+    private BigDecimal amtResidue;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 315 - 0
src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java

@@ -0,0 +1,315 @@
+package com.dk.mdm.model.response.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库明细")
+@TableName(value = "t_psi_outbound_item", autoResultMap = true)
+@ApiModel(value="实体类:出库明细", description="表名:t_psi_outbound_item")
+public class OutboundItemResponse extends PageInfo<OutboundItemResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 出库ID
+     */
+    @Excel(name = "出库ID")
+    @ApiModelProperty(value = "出库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 入库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单明细ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单明细ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单明细ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 出库价
+     */
+    @Excel(name = "出库价")
+    @ApiModelProperty(value = "出库价")
+    private BigDecimal priceOut;
+
+
+    /**
+     * 出库金额 (商品数量*入库价)
+     */
+    @Excel(name = "出库金额 (商品数量*入库价)")
+    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 出库状态
+     */
+    @Excel(name = "出库状态")
+    @ApiModelProperty(value = "出库状态")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 库存ID
+     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
+
+
+    /**
+     * 成本单价
+     */
+    @Excel(name = "成本单价")
+    @ApiModelProperty(value = "成本单价")
+    private BigDecimal costPrice;
+
+
+    /**
+     * 成本金额
+     */
+    @Excel(name = "成本金额")
+    @ApiModelProperty(value = "成本金额")
+    private BigDecimal costAmt;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 367 - 0
src/main/java/com/dk/mdm/model/response/ivt/OutboundResponse.java

@@ -0,0 +1,367 @@
+package com.dk.mdm.model.response.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库单
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库单")
+@TableName(value = "t_psi_outbound", autoResultMap = true)
+@ApiModel(value="实体类:出库单", description="表名:t_psi_outbound")
+public class OutboundResponse extends PageInfo<OutboundResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 出库单ID
+     */
+//    @TableId(value = "out_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 出库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单号
+     */
+    @Excel(name = "来源单号")
+    @ApiModelProperty(value = "来源单号")
+    private String fromNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 入库退货单ID
+     */
+    @Excel(name = "入库退货单ID")
+    @ApiModelProperty(value = "入库退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoReturnId;
+
+
+    /**
+     * 入库退货单号
+     */
+    @Excel(name = "入库退货单号")
+    @ApiModelProperty(value = "入库退货单号")
+    private String intoReturnNo;
+
+
+    /**
+     * 客户
+     */
+    @Excel(name = "客户")
+    @ApiModelProperty(value = "客户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 供应商
+     */
+    @Excel(name = "供应商")
+    @ApiModelProperty(value = "供应商")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String supId;
+
+
+    /**
+     * 出库状态 (【系统字典】)
+     */
+    @Excel(name = "出库状态 (【系统字典】)")
+    @ApiModelProperty(value = "出库状态 (【系统字典】)")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 出库日期
+     */
+    @Excel(name = "出库日期")
+    @ApiModelProperty(value = "出库日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime intoDate;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 应收款单
+     */
+    @Excel(name = "应收款单")
+    @ApiModelProperty(value = "应收款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String receivableId;
+
+
+    /**
+     * 应付款单
+     */
+    @Excel(name = "应付款单")
+    @ApiModelProperty(value = "应付款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String payableId;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 300 - 0
src/main/java/com/dk/mdm/model/response/sale/OutReturnItemResponse.java

@@ -0,0 +1,300 @@
+package com.dk.mdm.model.response.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货明细")
+@TableName(value = "t_psi_out_return_item", autoResultMap = true)
+@ApiModel(value="实体类:出库退货明细", description="表名:t_psi_out_return_item")
+public class OutReturnItemResponse extends PageInfo<OutReturnItemResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 退货单ID
+     */
+    @Excel(name = "退货单ID")
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 出库单ID
+     */
+    @Excel(name = "出库单ID")
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单明细ID
+     */
+    @Excel(name = "出库单明细ID")
+    @ApiModelProperty(value = "出库单明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outItemId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售明细ID
+     */
+    @Excel(name = "销售明细ID")
+    @ApiModelProperty(value = "销售明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 标价
+     */
+    @Excel(name = "标价")
+    @ApiModelProperty(value = "标价")
+    private BigDecimal priceStd;
+
+
+    /**
+     * 标价金额 (商品数量*标价)
+     */
+    @Excel(name = "标价金额 (商品数量*标价)")
+    @ApiModelProperty(value = "标价金额 (商品数量*标价)")
+    private BigDecimal amtStd;
+
+
+    /**
+     * 退货价
+     */
+    @Excel(name = "退货价")
+    @ApiModelProperty(value = "退货价")
+    private BigDecimal priceReturn;
+
+
+    /**
+     * 退货金额 (商品数量*退货价)
+     */
+    @Excel(name = "退货金额 (商品数量*退货价)")
+    @ApiModelProperty(value = "退货金额 (商品数量*退货价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 入库状态
+     */
+    @Excel(name = "入库状态")
+    @ApiModelProperty(value = "入库状态")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 438 - 0
src/main/java/com/dk/mdm/model/response/sale/OutReturnResponse.java

@@ -0,0 +1,438 @@
+package com.dk.mdm.model.response.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货")
+@TableName(value = "t_psi_out_return", autoResultMap = true)
+@ApiModel(value="实体类:出库退货", description="表名:t_psi_out_return")
+public class OutReturnResponse extends PageInfo<OutReturnResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 退货单ID
+     */
+//    @TableId(value = "return_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 退货单号
+     */
+    @Excel(name = "退货单号")
+    @ApiModelProperty(value = "退货单号")
+    private String returnNo;
+
+
+    /**
+     * 退货类型 (【系统字典】销售退货)
+     */
+    @Excel(name = "退货类型 (【系统字典】销售退货)")
+    @ApiModelProperty(value = "退货类型 (【系统字典】销售退货)")
+    private String returnType;
+
+
+    /**
+     * 出库单
+     */
+    @Excel(name = "出库单")
+    @ApiModelProperty(value = "出库单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 销售订单
+     */
+    @Excel(name = "销售订单")
+    @ApiModelProperty(value = "销售订单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 客户ID
+     */
+    @Excel(name = "客户ID")
+    @ApiModelProperty(value = "客户ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 行政区划 (a1:省 a2:市 a3:区)
+     */
+    @Excel(name = "行政区划 (a1:省 a2:市 a3:区)")
+    @ApiModelProperty(value = "行政区划 (a1:省 a2:市 a3:区)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressArea;
+
+
+    /**
+     * 小区或POI
+     */
+    @Excel(name = "小区或POI")
+    @ApiModelProperty(value = "小区或POI")
+    private String addressName;
+
+
+    /**
+     * 门牌号
+     */
+    @Excel(name = "门牌号")
+    @ApiModelProperty(value = "门牌号")
+    private String addressNo;
+
+
+    /**
+     * 地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)
+     */
+    @Excel(name = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @ApiModelProperty(value = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressGcj02;
+
+
+    /**
+     * 详细地址
+     */
+    @Excel(name = "详细地址")
+    @ApiModelProperty(value = "详细地址")
+    private String addressFull;
+
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    @ApiModelProperty(value = "联系电话")
+    private String contactPhone;
+
+
+    /**
+     * 销售渠道
+     */
+    @Excel(name = "销售渠道")
+    @ApiModelProperty(value = "销售渠道")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String salesChannel;
+
+
+    /**
+     * 取货日期
+     */
+    @Excel(name = "取货日期")
+    @ApiModelProperty(value = "取货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime pickupDate;
+
+
+    /**
+     * 商品总数量
+     */
+    @Excel(name = "商品总数量")
+    @ApiModelProperty(value = "商品总数量")
+    private BigDecimal sumQuantity;
+
+
+    /**
+     * 标价合计
+     */
+    @Excel(name = "标价合计")
+    @ApiModelProperty(value = "标价合计")
+    private BigDecimal sumStandard;
+
+
+    /**
+     * 合计金额
+     */
+    @Excel(name = "合计金额")
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal sumAmount;
+
+
+    /**
+     * 销售折扣 (合计金额/标价合计)
+     */
+    @Excel(name = "销售折扣 (合计金额/标价合计)")
+    @ApiModelProperty(value = "销售折扣 (合计金额/标价合计)")
+    private BigDecimal saleDiscount;
+
+
+    /**
+     * 退货状态 (【系统字典】)
+     */
+    @Excel(name = "退货状态 (【系统字典】)")
+    @ApiModelProperty(value = "退货状态 (【系统字典】)")
+    private String returnStatus;
+
+
+    /**
+     * 入库状态 (【系统字典】)
+     */
+    @Excel(name = "入库状态 (【系统字典】)")
+    @ApiModelProperty(value = "入库状态 (【系统字典】)")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 应收金额
+     */
+    @Excel(name = "应收金额")
+    @ApiModelProperty(value = "应收金额")
+    private BigDecimal amtReceivable;
+
+
+    /**
+     * 还款金额
+     */
+    @Excel(name = "还款金额")
+    @ApiModelProperty(value = "还款金额")
+    private BigDecimal amtHandle;
+
+
+    /**
+     * 剩余应收
+     */
+    @Excel(name = "剩余应收")
+    @ApiModelProperty(value = "剩余应收")
+    private BigDecimal amtResidue;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 315 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java

@@ -0,0 +1,315 @@
+package com.dk.mdm.model.vo.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库明细")
+@TableName(value = "t_psi_outbound_item", autoResultMap = true)
+@ApiModel(value="实体类:出库明细", description="表名:t_psi_outbound_item")
+public class OutboundItemVO extends PageInfo<OutboundItemVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 出库ID
+     */
+    @Excel(name = "出库ID")
+    @ApiModelProperty(value = "出库ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 入库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "入库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单明细ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单明细ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单明细ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 出库价
+     */
+    @Excel(name = "出库价")
+    @ApiModelProperty(value = "出库价")
+    private BigDecimal priceOut;
+
+
+    /**
+     * 出库金额 (商品数量*入库价)
+     */
+    @Excel(name = "出库金额 (商品数量*入库价)")
+    @ApiModelProperty(value = "出库金额 (商品数量*入库价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 出库状态
+     */
+    @Excel(name = "出库状态")
+    @ApiModelProperty(value = "出库状态")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 库存ID
+     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
+
+
+    /**
+     * 成本单价
+     */
+    @Excel(name = "成本单价")
+    @ApiModelProperty(value = "成本单价")
+    private BigDecimal costPrice;
+
+
+    /**
+     * 成本金额
+     */
+    @Excel(name = "成本金额")
+    @ApiModelProperty(value = "成本金额")
+    private BigDecimal costAmt;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 367 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundVO.java

@@ -0,0 +1,367 @@
+package com.dk.mdm.model.vo.ivt;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库单
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库单")
+@TableName(value = "t_psi_outbound", autoResultMap = true)
+@ApiModel(value="实体类:出库单", description="表名:t_psi_outbound")
+public class OutboundVO extends PageInfo<OutboundVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 出库单ID
+     */
+//    @TableId(value = "out_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 出库类型 (【系统字典】销售出库、采退出库、其他出库)
+     */
+    @Excel(name = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    @ApiModelProperty(value = "出库类型 (【系统字典】销售出库、采退出库、其他出库)")
+    private String outType;
+
+
+    /**
+     * 来源单ID (销售订单、入库退货)
+     */
+    @Excel(name = "来源单ID (销售订单、入库退货)")
+    @ApiModelProperty(value = "来源单ID (销售订单、入库退货)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String fromId;
+
+
+    /**
+     * 来源单号
+     */
+    @Excel(name = "来源单号")
+    @ApiModelProperty(value = "来源单号")
+    private String fromNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 入库退货单ID
+     */
+    @Excel(name = "入库退货单ID")
+    @ApiModelProperty(value = "入库退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String intoReturnId;
+
+
+    /**
+     * 入库退货单号
+     */
+    @Excel(name = "入库退货单号")
+    @ApiModelProperty(value = "入库退货单号")
+    private String intoReturnNo;
+
+
+    /**
+     * 客户
+     */
+    @Excel(name = "客户")
+    @ApiModelProperty(value = "客户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 供应商
+     */
+    @Excel(name = "供应商")
+    @ApiModelProperty(value = "供应商")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String supId;
+
+
+    /**
+     * 出库状态 (【系统字典】)
+     */
+    @Excel(name = "出库状态 (【系统字典】)")
+    @ApiModelProperty(value = "出库状态 (【系统字典】)")
+    private String outStatus;
+
+
+    /**
+     * 出库中数量
+     */
+    @Excel(name = "出库中数量")
+    @ApiModelProperty(value = "出库中数量")
+    private BigDecimal outingQty;
+
+
+    /**
+     * 出库中金额
+     */
+    @Excel(name = "出库中金额")
+    @ApiModelProperty(value = "出库中金额")
+    private BigDecimal outingAmt;
+
+
+    /**
+     * 已出库数量
+     */
+    @Excel(name = "已出库数量")
+    @ApiModelProperty(value = "已出库数量")
+    private BigDecimal outQty;
+
+
+    /**
+     * 已出库金额
+     */
+    @Excel(name = "已出库金额")
+    @ApiModelProperty(value = "已出库金额")
+    private BigDecimal outAmt;
+
+
+    /**
+     * 已出库退货数量
+     */
+    @Excel(name = "已出库退货数量")
+    @ApiModelProperty(value = "已出库退货数量")
+    private BigDecimal returnQty;
+
+
+    /**
+     * 已出库退货金额
+     */
+    @Excel(name = "已出库退货金额")
+    @ApiModelProperty(value = "已出库退货金额")
+    private BigDecimal returnAmt;
+
+
+    /**
+     * 出库日期
+     */
+    @Excel(name = "出库日期")
+    @ApiModelProperty(value = "出库日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime intoDate;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 应收款单
+     */
+    @Excel(name = "应收款单")
+    @ApiModelProperty(value = "应收款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String receivableId;
+
+
+    /**
+     * 应付款单
+     */
+    @Excel(name = "应付款单")
+    @ApiModelProperty(value = "应付款单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String payableId;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 300 - 0
src/main/java/com/dk/mdm/model/vo/sale/OutReturnItemVO.java

@@ -0,0 +1,300 @@
+package com.dk.mdm.model.vo.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货明细")
+@TableName(value = "t_psi_out_return_item", autoResultMap = true)
+@ApiModel(value="实体类:出库退货明细", description="表名:t_psi_out_return_item")
+public class OutReturnItemVO extends PageInfo<OutReturnItemVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 明细ID
+     */
+//    @TableId(value = "item_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String itemId;
+
+
+    /**
+     * 退货单ID
+     */
+    @Excel(name = "退货单ID")
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 出库单ID
+     */
+    @Excel(name = "出库单ID")
+    @ApiModelProperty(value = "出库单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 出库单明细ID
+     */
+    @Excel(name = "出库单明细ID")
+    @ApiModelProperty(value = "出库单明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outItemId;
+
+
+    /**
+     * 销售订单ID
+     */
+    @Excel(name = "销售订单ID")
+    @ApiModelProperty(value = "销售订单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 销售明细ID
+     */
+    @Excel(name = "销售明细ID")
+    @ApiModelProperty(value = "销售明细ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderItemId;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 商品数量
+     */
+    @Excel(name = "商品数量")
+    @ApiModelProperty(value = "商品数量")
+    private BigDecimal itemQty;
+
+
+    /**
+     * 标价
+     */
+    @Excel(name = "标价")
+    @ApiModelProperty(value = "标价")
+    private BigDecimal priceStd;
+
+
+    /**
+     * 标价金额 (商品数量*标价)
+     */
+    @Excel(name = "标价金额 (商品数量*标价)")
+    @ApiModelProperty(value = "标价金额 (商品数量*标价)")
+    private BigDecimal amtStd;
+
+
+    /**
+     * 退货价
+     */
+    @Excel(name = "退货价")
+    @ApiModelProperty(value = "退货价")
+    private BigDecimal priceReturn;
+
+
+    /**
+     * 退货金额 (商品数量*退货价)
+     */
+    @Excel(name = "退货金额 (商品数量*退货价)")
+    @ApiModelProperty(value = "退货金额 (商品数量*退货价)")
+    private BigDecimal itemAmt;
+
+
+    /**
+     * 非标号
+     */
+    @Excel(name = "非标号")
+    @ApiModelProperty(value = "非标号")
+    private String nonStdCode;
+
+
+    /**
+     * 入库状态
+     */
+    @Excel(name = "入库状态")
+    @ApiModelProperty(value = "入库状态")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 438 - 0
src/main/java/com/dk/mdm/model/vo/sale/OutReturnVO.java

@@ -0,0 +1,438 @@
+package com.dk.mdm.model.vo.sale;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.JsonTypeHandler;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ *  出库退货
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("出库退货")
+@TableName(value = "t_psi_out_return", autoResultMap = true)
+@ApiModel(value="实体类:出库退货", description="表名:t_psi_out_return")
+public class OutReturnVO extends PageInfo<OutReturnVO> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 退货单ID
+     */
+//    @TableId(value = "return_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "退货单ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String returnId;
+
+
+    /**
+     * 退货单号
+     */
+    @Excel(name = "退货单号")
+    @ApiModelProperty(value = "退货单号")
+    private String returnNo;
+
+
+    /**
+     * 退货类型 (【系统字典】销售退货)
+     */
+    @Excel(name = "退货类型 (【系统字典】销售退货)")
+    @ApiModelProperty(value = "退货类型 (【系统字典】销售退货)")
+    private String returnType;
+
+
+    /**
+     * 出库单
+     */
+    @Excel(name = "出库单")
+    @ApiModelProperty(value = "出库单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String outId;
+
+
+    /**
+     * 销售订单
+     */
+    @Excel(name = "销售订单")
+    @ApiModelProperty(value = "销售订单")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orderId;
+
+
+    /**
+     * 出库单号
+     */
+    @Excel(name = "出库单号")
+    @ApiModelProperty(value = "出库单号")
+    private String outNo;
+
+
+    /**
+     * 销售订单号
+     */
+    @Excel(name = "销售订单号")
+    @ApiModelProperty(value = "销售订单号")
+    private String orderNo;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 客户ID
+     */
+    @Excel(name = "客户ID")
+    @ApiModelProperty(value = "客户ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cusId;
+
+
+    /**
+     * 行政区划 (a1:省 a2:市 a3:区)
+     */
+    @Excel(name = "行政区划 (a1:省 a2:市 a3:区)")
+    @ApiModelProperty(value = "行政区划 (a1:省 a2:市 a3:区)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressArea;
+
+
+    /**
+     * 小区或POI
+     */
+    @Excel(name = "小区或POI")
+    @ApiModelProperty(value = "小区或POI")
+    private String addressName;
+
+
+    /**
+     * 门牌号
+     */
+    @Excel(name = "门牌号")
+    @ApiModelProperty(value = "门牌号")
+    private String addressNo;
+
+
+    /**
+     * 地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)
+     */
+    @Excel(name = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @ApiModelProperty(value = "地址坐标(gcj02) (LAT:纬度的值 LON:经度的值)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject addressGcj02;
+
+
+    /**
+     * 详细地址
+     */
+    @Excel(name = "详细地址")
+    @ApiModelProperty(value = "详细地址")
+    private String addressFull;
+
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+
+    /**
+     * 联系电话
+     */
+    @Excel(name = "联系电话")
+    @ApiModelProperty(value = "联系电话")
+    private String contactPhone;
+
+
+    /**
+     * 销售渠道
+     */
+    @Excel(name = "销售渠道")
+    @ApiModelProperty(value = "销售渠道")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String salesChannel;
+
+
+    /**
+     * 取货日期
+     */
+    @Excel(name = "取货日期")
+    @ApiModelProperty(value = "取货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime pickupDate;
+
+
+    /**
+     * 商品总数量
+     */
+    @Excel(name = "商品总数量")
+    @ApiModelProperty(value = "商品总数量")
+    private BigDecimal sumQuantity;
+
+
+    /**
+     * 标价合计
+     */
+    @Excel(name = "标价合计")
+    @ApiModelProperty(value = "标价合计")
+    private BigDecimal sumStandard;
+
+
+    /**
+     * 合计金额
+     */
+    @Excel(name = "合计金额")
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal sumAmount;
+
+
+    /**
+     * 销售折扣 (合计金额/标价合计)
+     */
+    @Excel(name = "销售折扣 (合计金额/标价合计)")
+    @ApiModelProperty(value = "销售折扣 (合计金额/标价合计)")
+    private BigDecimal saleDiscount;
+
+
+    /**
+     * 退货状态 (【系统字典】)
+     */
+    @Excel(name = "退货状态 (【系统字典】)")
+    @ApiModelProperty(value = "退货状态 (【系统字典】)")
+    private String returnStatus;
+
+
+    /**
+     * 入库状态 (【系统字典】)
+     */
+    @Excel(name = "入库状态 (【系统字典】)")
+    @ApiModelProperty(value = "入库状态 (【系统字典】)")
+    private String intoStatus;
+
+
+    /**
+     * 入库中数量
+     */
+    @Excel(name = "入库中数量")
+    @ApiModelProperty(value = "入库中数量")
+    private BigDecimal intoingQty;
+
+
+    /**
+     * 入库中金额
+     */
+    @Excel(name = "入库中金额")
+    @ApiModelProperty(value = "入库中金额")
+    private BigDecimal intoingAmt;
+
+
+    /**
+     * 已入库数量
+     */
+    @Excel(name = "已入库数量")
+    @ApiModelProperty(value = "已入库数量")
+    private BigDecimal intoQty;
+
+
+    /**
+     * 已入库金额
+     */
+    @Excel(name = "已入库金额")
+    @ApiModelProperty(value = "已入库金额")
+    private BigDecimal intoAmt;
+
+
+    /**
+     * 应收金额
+     */
+    @Excel(name = "应收金额")
+    @ApiModelProperty(value = "应收金额")
+    private BigDecimal amtReceivable;
+
+
+    /**
+     * 还款金额
+     */
+    @Excel(name = "还款金额")
+    @ApiModelProperty(value = "还款金额")
+    private BigDecimal amtHandle;
+
+
+    /**
+     * 剩余应收
+     */
+    @Excel(name = "剩余应收")
+    @ApiModelProperty(value = "剩余应收")
+    private BigDecimal amtResidue;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)
+     */
+    @Excel(name = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @ApiModelProperty(value = "附件 (index(显示顺序)、name(文件名)、path(路径)、type(类型)、time(上传时间)...)")
+    @TableField(typeHandler = JsonTypeHandler.class)
+    private JSONObject annexPaths;
+
+
+    /**
+     * 制单员
+     */
+    @Excel(name = "制单员")
+    @ApiModelProperty(value = "制单员")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String makeStaff;
+
+
+    /**
+     * 制单时间
+     */
+    @Excel(name = "制单时间")
+    @ApiModelProperty(value = "制单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime makeTime;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @Excel(name = "企业ID")
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 创建时间 (触发器自动处理)
+     */
+    @Excel(name = "创建时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "创建时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opCreateTime;
+
+
+    /**
+     * 创建用户 (触发器自动处理)
+     */
+    @Excel(name = "创建用户 (触发器自动处理)")
+    @ApiModelProperty(value = "创建用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opCreateUserId;
+
+
+    /**
+     * 修改时间 (触发器自动处理)
+     */
+    @Excel(name = "修改时间 (触发器自动处理)", format = "yyyy-MM-dd HH:mm:ss", width = 20)
+    @ApiModelProperty(value = "修改时间 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opUpdateTime;
+
+
+    /**
+     * 修改用户 (触发器自动处理)
+     */
+    @Excel(name = "修改用户 (触发器自动处理)")
+    @ApiModelProperty(value = "修改用户 (触发器自动处理)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String opUpdateUserId;
+
+
+    /**
+     * 数据操作应用 (触发器自动处理)
+     */
+    @Excel(name = "数据操作应用 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作应用 (触发器自动处理)")
+    private String opAppCode;
+
+
+    /**
+     * 数据时间戳 (触发器自动处理)
+     */
+    @Excel(name = "数据时间戳 (触发器自动处理)")
+    @ApiModelProperty(value = "数据时间戳 (触发器自动处理)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime opTimestamp;
+
+
+    /**
+     * 数据操作数据库用户 (触发器自动处理)
+     */
+    @Excel(name = "数据操作数据库用户 (触发器自动处理)")
+    @ApiModelProperty(value = "数据操作数据库用户 (触发器自动处理)")
+    private String opDbUser;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 23 - 0
src/main/java/com/dk/mdm/service/ivt/OutboundItemService.java

@@ -0,0 +1,23 @@
+package com.dk.mdm.service.ivt;
+
+import com.dk.mdm.model.pojo.ivt.OutboundItem;
+import com.dk.mdm.mapper.ivt.OutboundItemMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class OutboundItemService extends BaseService<OutboundItem> {
+
+	@Override
+	public BaseMapper<OutboundItem> getRepository() {
+		return outboundItemMapper;
+	}
+
+	@Autowired
+	private OutboundItemMapper outboundItemMapper;
+
+}

+ 23 - 0
src/main/java/com/dk/mdm/service/ivt/OutboundService.java

@@ -0,0 +1,23 @@
+package com.dk.mdm.service.ivt;
+
+import com.dk.mdm.model.pojo.ivt.Outbound;
+import com.dk.mdm.mapper.ivt.OutboundMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class OutboundService extends BaseService<Outbound> {
+
+	@Override
+	public BaseMapper<Outbound> getRepository() {
+		return outboundMapper;
+	}
+
+	@Autowired
+	private OutboundMapper outboundMapper;
+
+}

+ 23 - 0
src/main/java/com/dk/mdm/service/sale/OutReturnItemService.java

@@ -0,0 +1,23 @@
+package com.dk.mdm.service.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturnItem;
+import com.dk.mdm.mapper.sale.OutReturnItemMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class OutReturnItemService extends BaseService<OutReturnItem> {
+
+	@Override
+	public BaseMapper<OutReturnItem> getRepository() {
+		return outReturnItemMapper;
+	}
+
+	@Autowired
+	private OutReturnItemMapper outReturnItemMapper;
+
+}

+ 23 - 0
src/main/java/com/dk/mdm/service/sale/OutReturnService.java

@@ -0,0 +1,23 @@
+package com.dk.mdm.service.sale;
+
+import com.dk.mdm.model.pojo.sale.OutReturn;
+import com.dk.mdm.mapper.sale.OutReturnMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class OutReturnService extends BaseService<OutReturn> {
+
+	@Override
+	public BaseMapper<OutReturn> getRepository() {
+		return outReturnMapper;
+	}
+
+	@Autowired
+	private OutReturnMapper outReturnMapper;
+
+}