songyang 2 лет назад
Родитель
Сommit
0eef84c6b9

+ 41 - 0
src/main/java/com/dk/mdm/controller/ivt/TransferController.java

@@ -0,0 +1,41 @@
+package com.dk.mdm.controller.ivt;
+
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.model.pojo.ivt.Transfer;
+import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.ivt.TransferQuery;
+import com.dk.mdm.model.response.ivt.TransferResponse;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+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.TransferService;
+
+@Api(tags = "调整单API接口")
+@RestController
+@RequestMapping("/ivt/transfer")
+public class TransferController{
+
+    public BaseService<Transfer> getService() {
+        return transferService;
+    }
+
+    @Autowired
+    private TransferService transferService;
+
+    /**
+     * @desc   : 条件查询
+     * @author : 宋扬
+     * @date   : 2024/4/2 9:19
+     */
+    @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
+    @PostMapping({"list_by"})
+    public ResponseResultVO<PageList<TransferResponse>> selectByCond(@RequestBody TransferQuery transferQuery) {
+        return transferService.selectByCond(transferQuery);
+    }
+
+}

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

@@ -0,0 +1,24 @@
+package com.dk.mdm.controller.ivt;
+
+import com.dk.mdm.model.pojo.ivt.TransferItem;
+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.TransferItemService;
+
+@Api(tags = "调整单明细API接口")
+@RestController
+@RequestMapping("/ivt/transferItem")
+public class TransferItemController{
+
+    public BaseService<TransferItem> getService() {
+        return transferItemService;
+    }
+
+    @Autowired
+    private TransferItemService transferItemService;
+
+}

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

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

+ 202 - 0
src/main/java/com/dk/mdm/mapper/ivt/TransferItemMapper.xml

@@ -0,0 +1,202 @@
+<?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.TransferItemMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        item_id, transfer_id, transfer_date, item_index, sku_id, o_inv_id, inv_id, o_wh_id, transfer_qty, wh_id, o_non_std_code, non_std_code, price_into, intoing_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.pojo.ivt.TransferItem">
+        <id column="item_id" property="itemId"/>
+                <result column="transfer_id" property="transferId" typeHandler="UuidTypeHandler"/>
+            <result column="transfer_date" property="transferDate" typeHandler="TimestampTypeHandler"/>
+                <result column="item_index" property="itemIndex"/>
+                <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
+                <result column="o_inv_id" property="oInvId" typeHandler="UuidTypeHandler"/>
+                <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
+                <result column="o_wh_id" property="oWhId" typeHandler="UuidTypeHandler"/>
+                <result column="wh_id" property="whId" typeHandler="UuidTypeHandler"/>
+                <result column="o_non_std_code" property="oNonStdCode"/>
+                <result column="non_std_code" property="nonStdCode"/>
+                <result column="price_into" property="priceInto"/>
+                <result column="intoing_amt" property="intoingAmt"/>
+                <result column="transfer_qty" property="transferQty"/>
+                <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="transferId != null and transferId != ''">
+                AND transfer_id = #{transferId}
+            </if>
+            <if test="transferDate != null">
+                AND transfer_date = #{transferDate}
+            </if>
+            <if test="itemIndex != null">
+                AND item_index = #{itemIndex}
+            </if>
+            <if test="skuId != null and skuId != ''">
+                AND sku_id = #{skuId}
+            </if>
+            <if test="oInvId != null and oInvId != ''">
+                AND o_inv_id = #{oInvId}
+            </if>
+            <if test="invId != null and invId != ''">
+                AND inv_id = #{invId}
+            </if>
+            <if test="oWhId != null and oWhId != ''">
+                AND o_wh_id = #{oWhId}
+            </if>
+            <if test="whId != null and whId != ''">
+                AND wh_id = #{whId}
+            </if>
+            <if test="oNonStdCode != null and oNonStdCode != ''">
+                AND o_non_std_code = #{oNonStdCode}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND non_std_code = #{nonStdCode}
+            </if>
+            <if test="priceInto != null">
+                AND price_into = #{priceInto}
+            </if>
+            <if test="intoingAmt != null">
+                AND intoing_amt = #{intoingAmt}
+            </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_transfer_item,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_transfer_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_transfer_item,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM t_psi_transfer_item
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_transfer_item的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_transfer_item
+        WHERE item_id = #{itemId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_transfer_item的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_transfer_item
+        WHERE item_id = #{itemId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表t_psi_transfer_item的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_psi_transfer_item
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into t_psi_transfer_item
+        (
+        <trim suffixOverrides=",">
+            transfer_id,
+            transfer_date,
+            item_index,
+            sku_id,
+            o_inv_id,
+            inv_id,
+            o_wh_id,
+            wh_id,
+            o_non_std_code,
+            non_std_code,
+            price_into,
+            intoing_amt,
+            cp_id,
+            op_app_code,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.transferId}::uuid,
+                #{item.transferDate},
+                #{item.itemIndex},
+                #{item.skuId}::uuid,
+                #{item.oInvId}::uuid,
+                #{item.invId}::uuid,
+                #{item.oWhId}::uuid,
+                #{item.whId}::uuid,
+                #{item.oNonStdCode},
+                #{item.nonStdCode},
+                #{item.priceInto},
+                #{item.intoingAmt},
+                #{item.cpId},
+                #{item.opAppCode},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 33 - 0
src/main/java/com/dk/mdm/mapper/ivt/TransferMapper.java

@@ -0,0 +1,33 @@
+package com.dk.mdm.mapper.ivt;
+
+import com.dk.mdm.model.pojo.ivt.Transfer;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.ivt.CheckQuery;
+import com.dk.mdm.model.query.ivt.TransferQuery;
+import com.dk.mdm.model.response.ivt.TransferResponse;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+*  调整单 Mapper
+*/
+@Repository
+public interface TransferMapper extends BaseMapper<Transfer>{
+
+    /**
+     * @desc   : 查询一览信息
+     * @author : 宋扬
+     * @date   : 2024/4/2 9:26
+     */
+    List<TransferResponse> selectByCond(TransferQuery transferQuery);
+
+    /**
+     * @desc   : 根据条件进行查询(数量)
+     * @author : 宋扬
+     * @date   : 2024/4/2 9:28
+     */
+    Long countByCond(TransferQuery transferQuery);
+	
+}
+

+ 222 - 0
src/main/java/com/dk/mdm/mapper/ivt/TransferMapper.xml

@@ -0,0 +1,222 @@
+<?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.TransferMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        transfer_id, transfer_no, transfer_type, org_id, staff_id, transfer_date, o_wh_id, wh_id, o_non_std_code, non_std_code, remarks, 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>
+
+    <!-- 查询一览列 -->
+    <sql id="Base_Column_List_Response">
+        trf.transfer_id, trf.transfer_no, trf.transfer_type, trf.org_id, trf.staff_id, trf.transfer_date, trf.o_wh_id
+        , trf.wh_id, trf.o_non_std_code, trf.non_std_code, trf.remarks, trf.make_staff, trf.make_time
+        , trf.flg_valid, trf.cp_id
+         ,sys.f_get_name_i18n(tdk.kind_name_i18n,'zh_CN' ) AS "transferStatusName"
+        ,staff.staff_name AS "transferStaff"
+        ,org.org_name AS "transferOrg"
+        ,mstaff.staff_name AS "makeStaffName"
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.Transfer">
+        <id column="transfer_id" property="transferId"/>
+                <result column="transfer_no" property="transferNo"/>
+                <result column="transfer_type" property="transferType"/>
+                <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+                <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+            <result column="transfer_date" property="transferDate" typeHandler="TimestampTypeHandler"/>
+                <result column="o_wh_id" property="oWhId" typeHandler="UuidTypeHandler"/>
+                <result column="wh_id" property="whId" typeHandler="UuidTypeHandler"/>
+                <result column="o_non_std_code" property="oNonStdCode"/>
+                <result column="non_std_code" property="nonStdCode"/>
+                <result column="remarks" property="remarks"/>
+                <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>
+
+    <!-- 查询一览映射结果 -->
+    <resultMap id="BaseResultMap_Response" type="com.dk.mdm.model.response.ivt.TransferResponse">
+        <id column="transfer_id" property="transferId"/>
+        <result column="transfer_no" property="transferNo"/>
+        <result column="transfer_type" property="transferType"/>
+        <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
+        <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
+        <result column="transfer_date" property="transferDate" typeHandler="TimestampTypeHandler"/>
+        <result column="o_wh_id" property="oWhId" typeHandler="UuidTypeHandler"/>
+        <result column="wh_id" property="whId" typeHandler="UuidTypeHandler"/>
+        <result column="o_non_std_code" property="oNonStdCode"/>
+        <result column="non_std_code" property="nonStdCode"/>
+        <result column="remarks" property="remarks"/>
+        <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="transferNo != null and transferNo != ''">
+                AND transfer_no = #{transferNo}
+            </if>
+            <if test="transferType != null and transferType != ''">
+                AND transfer_type = #{transferType}
+            </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="transferDate != null">
+                AND transfer_date = #{transferDate}
+            </if>
+            <if test="oWhId != null and oWhId != ''">
+                AND o_wh_id = #{oWhId}
+            </if>
+            <if test="whId != null and whId != ''">
+                AND wh_id = #{whId}
+            </if>
+            <if test="oNonStdCode != null and oNonStdCode != ''">
+                AND o_non_std_code = #{oNonStdCode}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND non_std_code = #{nonStdCode}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND remarks = #{remarks}
+            </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="Condition_Response">
+        <where>
+            <if test="transferNo != null and transferNo != ''">
+                AND trf.transfer_no = LIKE concat('%',my_ex.likequery(#{transferNo}),'%')
+            </if>
+            <if test="transferDate != null">
+                AND trf.transfer_date = #{transferDate}
+            </if>
+            <if test="oWhId != null and oWhId != ''">
+                AND o_wh_id = #{oWhId}
+            </if>
+            <if test="whId != null and whId != ''">
+                AND wh_id = #{whId}
+            </if>
+            <if test="oNonStdCode != null and oNonStdCode != ''">
+                AND o_non_std_code = #{oNonStdCode}
+            </if>
+            <if test="nonStdCode != null and nonStdCode != ''">
+                AND non_std_code = #{nonStdCode}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                AND trf.remarks = #{remarks}
+            </if>
+            <if test="cpId != null">
+                AND trf.cp_id = #{cpId}
+            </if>
+            <if test="flgValidList != null and flgValidList.size>0">
+                AND trf.flg_valid  =any(#{flgValidList, typeHandler=BooleanListTypeHandler})
+            </if>
+            <if test="orgIdList != null and orgIdList.size>0">
+                AND trf.org_id = any(#{orgIdList, typeHandler=UuidListTypeHandler})
+            </if>
+            <if test="staffIdList != null and staffIdList.size>0">
+                AND trf.staff_id = any(#{staffIdList, typeHandler=UuidListTypeHandler})
+            </if>
+        </where>
+    </sql>
+
+    <!-- 查询表t_psi_transfer,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap_Response">
+        SELECT
+        <include refid="Base_Column_List_Response"/>
+        FROM dkic_b.t_psi_transfer AS trf
+        lEFT JOIN dkic_b.t_mst_staff AS staff ON  staff.staff_id=trf.staff_id
+        lEFT JOIN dkic_b.t_mst_org AS org ON org.org_id=trf.org_id
+        lEFT JOIN dkic_b.t_mst_staff AS mstaff ON mstaff.staff_id=trf.make_staff
+        LEFT JOIN sys.t_data_kind AS tdk  ON tdk.kind_code = trf.transfer_type
+        <include refid="Condition_Response"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_psi_transfer,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_b.t_psi_transfer
+        <include refid="Condition"/>
+    </select>
+
+    <!-- 根据主键查询表t_psi_transfer的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_b.t_psi_transfer
+        WHERE transfer_id = #{transferId}::uuid
+    </select>
+
+    <!-- 根据主键锁定表t_psi_transfer的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_b.t_psi_transfer
+        WHERE transfer_id = #{transferId}
+        for update
+    </select>
+
+</mapper>

+ 248 - 0
src/main/java/com/dk/mdm/model/pojo/ivt/Transfer.java

@@ -0,0 +1,248 @@
+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.time.LocalDate;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  调整单
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("调整单")
+@TableName(value = "t_psi_transfer", autoResultMap = true)
+@ApiModel(value="实体类:调整单", description="表名:t_psi_transfer")
+public class Transfer extends PageInfo<Transfer> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 调整ID
+     */
+    @ApiModelProperty(value = "调整ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String transferId;
+
+
+    /**
+     * 调整单号
+     */
+    @Excel(name = "调整单号")
+    @ApiModelProperty(value = "调整单号")
+    private String transferNo;
+
+
+    /**
+     * 调整类型 (【系统字典】调整类型(库区调整、批号调整))
+     */
+    @Excel(name = "调整类型 (【系统字典】调整类型(库区调整、批号调整))")
+    @ApiModelProperty(value = "调整类型 (【系统字典】调整类型(库区调整、批号调整))")
+    private String transferType;
+
+
+    /**
+     * 部门
+     */
+    @Excel(name = "部门")
+    @ApiModelProperty(value = "部门")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String orgId;
+
+
+    /**
+     * 员工
+     */
+    @Excel(name = "员工")
+    @ApiModelProperty(value = "员工")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String staffId;
+
+
+    /**
+     * 调整日期
+     */
+    @Excel(name = "调整日期")
+    @ApiModelProperty(value = "调整日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate transferDate;
+
+
+    /**
+     * 源库区ID
+     */
+    @Excel(name = "源库区ID")
+    @ApiModelProperty(value = "源库区ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String oWhId;
+
+
+    /**
+     * 目标库区ID
+     */
+    @Excel(name = "目标库区ID")
+    @ApiModelProperty(value = "目标库区ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String whId;
+
+
+    /**
+     * 源批号
+     */
+    @Excel(name = "源批号")
+    @ApiModelProperty(value = "源批号")
+    private String oNonStdCode;
+
+
+    /**
+     * 目标批号
+     */
+    @Excel(name = "目标批号")
+    @ApiModelProperty(value = "目标批号")
+    private String nonStdCode;
+
+
+    /**
+     * 备注
+     */
+    @Excel(name = "备注")
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+
+    /**
+     * 制单员
+     */
+    @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
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @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;
+
+}

+ 248 - 0
src/main/java/com/dk/mdm/model/pojo/ivt/TransferItem.java

@@ -0,0 +1,248 @@
+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.time.LocalDate;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  调整单明细
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("调整单明细")
+@TableName(value = "t_psi_transfer_item", autoResultMap = true)
+@ApiModel(value="实体类:调整单明细", description="表名:t_psi_transfer_item")
+public class TransferItem extends PageInfo<TransferItem> 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 transferId;
+
+
+    /**
+     * 调整日期
+     */
+    @Excel(name = "调整日期")
+    @ApiModelProperty(value = "调整日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate transferDate;
+
+
+    /**
+     * 商品顺序
+     */
+    @Excel(name = "商品顺序")
+    @ApiModelProperty(value = "商品顺序")
+    private Integer itemIndex;
+
+
+    /**
+     * 商品ID
+     */
+    @Excel(name = "商品ID")
+    @ApiModelProperty(value = "商品ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String skuId;
+
+
+    /**
+     * 源库存ID
+     */
+    @Excel(name = "源库存ID")
+    @ApiModelProperty(value = "源库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String oInvId;
+
+
+    /**
+     * 库存ID
+     */
+    @Excel(name = "库存ID")
+    @ApiModelProperty(value = "库存ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String invId;
+
+
+    /**
+     * 源库区ID
+     */
+    @Excel(name = "源库区ID")
+    @ApiModelProperty(value = "源库区ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String oWhId;
+
+
+    /**
+     * 目标库区ID
+     */
+    @Excel(name = "目标库区ID")
+    @ApiModelProperty(value = "目标库区ID")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String whId;
+
+
+    /**
+     * 源批号
+     */
+    @Excel(name = "源批号")
+    @ApiModelProperty(value = "源批号")
+    private String oNonStdCode;
+
+
+    /**
+     * 目标批号
+     */
+    @Excel(name = "目标批号")
+    @ApiModelProperty(value = "目标批号")
+    private String nonStdCode;
+
+
+    @ApiModelProperty(value = "")
+    private BigDecimal priceInto;
+
+
+    @ApiModelProperty(value = "")
+    private BigDecimal intoingAmt;
+
+    /**
+     * 调整数量
+     */
+    @Excel(name = "调整数量")
+    @ApiModelProperty(value = "调整数量")
+    private BigDecimal transferQty;
+
+
+    /**
+     * 有效标识 (1:正常 0:停用)
+     */
+    @Excel(name = "有效标识 (1:正常 0:停用)")
+    @ApiModelProperty(value = "有效标识 (1:正常 0:停用)")
+    private Boolean flgValid;
+
+
+    /**
+     * 企业ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @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/TransferItemService.java

@@ -0,0 +1,23 @@
+package com.dk.mdm.service.ivt;
+
+import com.dk.mdm.model.pojo.ivt.TransferItem;
+import com.dk.mdm.mapper.ivt.TransferItemMapper;
+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 TransferItemService extends BaseService<TransferItem> {
+
+	@Override
+	public BaseMapper<TransferItem> getRepository() {
+		return transferItemMapper;
+	}
+
+	@Autowired
+	private TransferItemMapper transferItemMapper;
+
+}

+ 282 - 0
src/main/java/com/dk/mdm/service/ivt/TransferService.java

@@ -0,0 +1,282 @@
+package com.dk.mdm.service.ivt;
+
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.infrastructure.constant.Constant;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.infrastructure.convert.ivt.TransferConvert;
+import com.dk.mdm.infrastructure.convert.ivt.TransferItemConvert;
+import com.dk.mdm.mapper.ivt.InboundItemMapper;
+import com.dk.mdm.mapper.ivt.TransferItemMapper;
+import com.dk.mdm.model.pojo.ivt.CheckItem;
+import com.dk.mdm.model.pojo.ivt.InboundItem;
+import com.dk.mdm.model.pojo.ivt.Transfer;
+import com.dk.mdm.mapper.ivt.TransferMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.ivt.TransferItem;
+import com.dk.mdm.model.query.ivt.TransferQuery;
+import com.dk.mdm.model.response.ivt.InboundItemResponse;
+import com.dk.mdm.model.response.ivt.TransferResponse;
+import com.dk.mdm.model.vo.ivt.*;
+import com.dk.mdm.service.common.CommonService;
+import com.dk.mdm.service.ivt.inbound.InboundCheckService;
+import com.dk.mdm.service.ivt.inbound.InboundItemService;
+import com.dk.mdm.service.ivt.outbound.OutboundCheckService;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional
+public class TransferService extends BaseService<Transfer> {
+
+	@Override
+	public BaseMapper<Transfer> getRepository() {
+		return transferMapper;
+	}
+
+	@Autowired
+	private TransferMapper transferMapper;
+
+	@Autowired
+	private TransferItemMapper transferItemMapper;
+
+	@Autowired
+	private TransferConvert transferConvert;
+
+	@Autowired
+	private TransferItemConvert transferItemConvert;
+
+	@Autowired
+	private CommonService commonService;
+
+	@Autowired
+	private InboundCheckService inboundCheckService;
+
+	@Autowired
+	private OutboundCheckService outboundCheckService;
+
+	@Autowired
+	private InboundItemService inboundItemService;
+
+	@Autowired
+	private InboundItemMapper inboundItemMapper;
+
+
+	/**
+	 * @desc   : 重写主键
+	 * @author : 宋扬
+	 * @date   : 2023/3/27 10:39
+	 */
+	@Override
+	public String getPrimaryKey() {
+		return "transfer_id";
+	}
+
+	/**
+	 * @desc   : 查询一览信息
+	 * @author : 宋扬
+	 * @date   : 2024/4/2 9:24
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<TransferResponse>> selectByCond(TransferQuery transferQuery) {
+		return super.mergeListWithCount(transferQuery, transferMapper.selectByCond(transferQuery),
+				transferMapper.countByCond(transferQuery));
+	}
+
+	/**
+	 * @desc   : 新建调整单
+	 * @author : 宋扬
+	 * @date   : 2024/3/27 11:08
+	 */
+	@Transactional(rollbackFor = {Exception.class})
+	public ResponseResultVO<?> insert(TransferVO transferVO) {
+		// 转化实体
+		Transfer transfer = transferConvert.convertToPo(transferVO);
+		try {
+			Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.Transfer.getName(), true);
+
+			//判断调整类型 仓库调整
+			if(transferVO.getTransferType().equals(Constant.transferType.CHECK_TYPE_WH.getName())){
+				// 插入仓库调整单的实体
+				transfer.setTransferId(codeMap.get("outId").toString()).setTransferNo(codeMap.get("outNote").toString())
+						.setTransferDate(LocalDate.now()).setStaffId(transferVO.getStaffId()).setOrgId(transferVO.getOrgId())
+						.setTransferType(transferVO.getTransferType()).setMakeStaff(transferVO.getMakeStaff())
+						.setMakeTime(LocalDateTime.now()).setRemarks(transferVO.getRemarks())
+						.setOWhId(transferVO.getOWhId()).setWhId(transferVO.getWhId());
+
+			}else{
+				// 插入非标号调整单的实体
+				transfer.setTransferId(codeMap.get("outId").toString()).setTransferNo(codeMap.get("outNote").toString())
+						.setTransferDate(LocalDate.now()).setStaffId(transferVO.getStaffId()).setOrgId(transferVO.getOrgId())
+						.setTransferType(transferVO.getTransferType()).setMakeStaff(transferVO.getMakeStaff())
+						.setMakeTime(LocalDateTime.now()).setRemarks(transferVO.getRemarks())
+						.setONonStdCode(transferVO.getONonStdCode()).setNonStdCode(transferVO.getNonStdCode());
+			}
+			// 先插调整单主表数据
+			super.insert(transfer);
+			// 因为需要获取目标inv_id,所以必须先调用入库接口。
+			// 定义入库Map
+			Map<String, Object> inboundMap= new HashMap<>();
+			// 定义出库Map
+			Map<String, Object> outboundCheckMap= new HashMap<>();
+			if (transferVO.getItemList() != null && transferVO.getItemList().size() > 0){
+				// 计算总调整量
+				BigDecimal transferQtySum = transferVO.getItemList().stream().map(TransferItemVO::getTransferQty).reduce(BigDecimal.ZERO, BigDecimal::add)
+						.setScale(6, BigDecimal.ROUND_HALF_UP);
+				// 计算总入库金额
+				BigDecimal intoingAmtSum = transferVO.getItemList().stream().map(TransferItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add)
+						.setScale(6, BigDecimal.ROUND_HALF_UP);
+				// 获取入库表实体
+				InboundVO inboundVO = new InboundVO();
+				List<InboundItem> inboundItemList=new ArrayList<>();
+				// 获取出库表实体
+				OutboundVO outboundVO = new OutboundVO();
+				List<OutboundItemVO> outboundItemVOList=new ArrayList<>();
+				// 仓库调整
+				if(transferVO.getTransferType().equals(Constant.transferType.CHECK_TYPE_WH.getName())) {
+					// 赋值入库实体
+					inboundVO.setOrgId(transferVO.getOrgId()).setStaffId(transferVO.getStaffId())
+							.setMakeStaff(transferVO.getMakeStaff()).setIntoingQty(transferQtySum)
+							.setFromId(transfer.getTransferId()).setFromNo(transfer.getTransferNo())
+							.setMakeTime(LocalDateTime.now()).setIntoDate(LocalDate.now()).setWhId(transferVO.getWhId())
+							.setFlgAutoHandle(true).setIntoingAmt(intoingAmtSum)
+							.setIntoStatus(Constant.InventoryDocCode.MOVE.getTableName());
+					// 赋值出库实体
+					outboundVO.setOrgId(transferVO.getOrgId()).setStaffId(transferVO.getStaffId())
+							.setMakeStaff(transferVO.getMakeStaff()).setOutingQty(transferQtySum)
+							.setFromId(transfer.getTransferId()).setFromNo(transfer.getTransferNo())
+							.setMakeTime(LocalDateTime.now()).setOutDate(LocalDate.now())
+							.setOutingAmt(BigDecimal.ZERO).setOutStatus(Constant.InventoryDocCode.MOVE.getTableName());
+					// 获取入库明细实体
+					for (TransferItemVO transferItemVO : transferVO.getItemList()) {
+						// 赋值入库明细实体
+						InboundItem inboundItem=new InboundItem();
+						inboundItem.setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+								.setIntoingAmt(transferItemVO.getIntoingAmt()).setPriceInto(transferItemVO.getPriceInto())
+								.setWhId(transferItemVO.getWhId()).setSkuId(transferItemVO.getSkuId())
+								.setNonStdCode(transferItemVO.getONonStdCode()).setItemIndex(transferItemVO.getItemIndex());
+						inboundItemList.add(inboundItem);
+					}
+					// 赋值入库接口参数 总表和明细
+					inboundMap.put("total", inboundVO);
+					inboundMap.put("detail", inboundItemList);
+					// 调用入库接口
+					InboundVO inboundTransferVO = inboundCheckService.checkInboundInsert(inboundMap);
+					// 如果库存接口返回成功,则插入调整单明细数据
+					if (transferVO.getItemList() != null && transferVO.getItemList().size() > 0) {
+						for (TransferItemVO transferItemVO : transferVO.getItemList()) {
+							// 转换
+							TransferItem transferItem = transferItemConvert.convertToPo(transferItemVO);
+							// 在入库接口中获取入库明细数据
+							List<InboundItemVO> inboundItemVOList = inboundTransferVO.getItemList().stream()
+									.filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
+							// 通过入库明细数据的item_id查询出inv_id
+							InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVOList.get(0).getItemId());
+							// 获取调整主表uuid
+							transferItem.setTransferId(transfer.getTransferId()).setTransferDate(LocalDate.now())
+									.setInvId(inboundItemResponse.getInvId());
+							// 插入调整单明细数据
+							transferItemMapper.insert(transferItem);
+							// 赋值入库明细值 并修改入库明细from_item_id值
+							InboundItem inboundItem= new InboundItem();
+							inboundItem.setFromItemId(transferItem.getItemId()).setItemId(inboundItemResponse.getItemId());
+							inboundItemService.updateByUuid(inboundItem);
+							// 赋值出库明细信息。
+							OutboundItemVO outboundItemVO =new OutboundItemVO();
+							outboundItemVO.setFromItemId(transferItem.getItemId()).setItemIndex(transferItem.getItemIndex())
+									.setOutingQty(transferItem.getTransferQty()).setFromId(transferItem.getTransferId())
+									.setSkuId(transferItem.getSkuId()).setNonStdCode(transferItem.getONonStdCode())
+									.setInvId(transferItem.getOInvId()).setPriceOut(BigDecimal.ZERO).setOutingAmt(BigDecimal.ZERO);
+							outboundItemVOList.add(outboundItemVO);
+						}
+						// 赋值出库接口参数 总表和明细
+						outboundCheckMap.put("total",outboundVO);
+						outboundCheckMap.put("detail",outboundItemVOList);
+						// 调用盘点出库接口
+						outboundCheckService.otherOutboundInsert(outboundCheckMap);
+					}
+				}
+				// 非标号调整
+				else{
+					// 赋值入库实体
+					inboundVO.setOrgId(transferVO.getOrgId()).setStaffId(transferVO.getStaffId())
+							.setMakeStaff(transferVO.getMakeStaff()).setIntoingQty(transferQtySum)
+							.setFromId(transfer.getTransferId()).setFromNo(transfer.getTransferNo())
+							.setMakeTime(LocalDateTime.now()).setIntoDate(LocalDate.now()).setWhId(transferVO.getOWhId())
+							.setFlgAutoHandle(true).setIntoingAmt(intoingAmtSum)
+							.setIntoStatus(Constant.InventoryDocCode.MOVE.getTableName());
+					// 赋值出库实体
+					outboundVO.setOrgId(transferVO.getOrgId()).setStaffId(transferVO.getStaffId())
+							.setMakeStaff(transferVO.getMakeStaff()).setOutingQty(transferQtySum)
+							.setFromId(transfer.getTransferId()).setFromNo(transfer.getTransferNo())
+							.setMakeTime(LocalDateTime.now()).setOutDate(LocalDate.now()).setOutingAmt(BigDecimal.ZERO)
+							.setOutStatus(Constant.InventoryDocCode.MOVE.getTableName());
+					// 获取入库明细实体
+					for (TransferItemVO transferItemVO : transferVO.getItemList()) {
+						// 赋值入库明细实体
+						InboundItem inboundItem=new InboundItem();
+						inboundItem.setIntoingQty(transferItemVO.getTransferQty()).setFromId(transfer.getTransferId())
+								.setIntoingAmt(transferItemVO.getIntoingAmt()).setPriceInto(transferItemVO.getPriceInto())
+								.setWhId(transferItemVO.getOWhId()).setSkuId(transferItemVO.getSkuId())
+								.setNonStdCode(transferItemVO.getNonStdCode()).setItemIndex(transferItemVO.getItemIndex());
+						inboundItemList.add(inboundItem);
+					}
+					// 赋值入库接口参数 总表和明细
+					inboundMap.put("total", inboundVO);
+					inboundMap.put("detail", inboundItemList);
+					// 调用入库接口
+					InboundVO inboundTransferVO = inboundCheckService.checkInboundInsert(inboundMap);
+					// 如果库存接口返回成功,则插入调整单明细数据
+					if (transferVO.getItemList() != null && transferVO.getItemList().size() > 0) {
+						for (TransferItemVO transferItemVO : transferVO.getItemList()) {
+							// 转换
+							TransferItem transferItem = transferItemConvert.convertToPo(transferItemVO);
+							// 在入库接口中获取入库明细数据
+							List<InboundItemVO> inboundItemVOList = inboundTransferVO.getItemList().stream()
+									.filter(it -> it.getItemIndex().equals(transferItemVO.getItemIndex())).collect(Collectors.toList());
+							// 通过入库明细数据的item_id查询出inv_id
+							InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVOList.get(0).getItemId());
+							// 获取调整主表uuid
+							transferItem.setTransferId(transfer.getTransferId()).setTransferDate(LocalDate.now())
+									.setInvId(inboundItemResponse.getInvId());
+							// 插入调整单明细数据
+							transferItemMapper.insert(transferItem);
+							// 赋值入库明细值 并修改入库明细from_item_id值
+							InboundItem inboundItem= new InboundItem();
+							inboundItem.setFromItemId(transferItem.getItemId()).setItemId(inboundItemResponse.getItemId());
+							inboundItemService.updateByUuid(inboundItem);
+							// 赋值出库明细信息。
+							OutboundItemVO outboundItemVO =new OutboundItemVO();
+							outboundItemVO.setFromItemId(transferItem.getItemId()).setItemIndex(transferItem.getItemIndex())
+									.setOutingQty(transferItem.getTransferQty()).setFromId(transferItem.getTransferId())
+									.setSkuId(transferItem.getSkuId()).setNonStdCode(transferItem.getONonStdCode())
+									.setInvId(transferItem.getOInvId()).setPriceOut(BigDecimal.ZERO).setOutingAmt(BigDecimal.ZERO);
+							outboundItemVOList.add(outboundItemVO);
+						}
+						// 赋值出库接口参数 总表和明细
+						outboundCheckMap.put("total",outboundVO);
+						outboundCheckMap.put("detail",outboundItemVOList);
+						// 调用盘点出库接口
+						outboundCheckService.otherOutboundInsert(outboundCheckMap);
+					}
+				}
+			}
+			return ResponseResultUtil.success();
+		} catch (Exception e) {
+			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // 手动回滚事务
+			return ResponseResultUtil.error("保存失败");
+		}
+
+	}
+
+}