Procházet zdrojové kódy

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP20_WEB_GLOBAL

li.shaoyi před 2 roky
rodič
revize
8c36f1fa8e

+ 1 - 1
public/config/appconfig.json

@@ -1,5 +1,5 @@
 {
   "version": "1.0.0",
   "versionCode": "100000",
-  "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204"
+  "apiUrl": "http://192.168.31.171:8080/cfg?key=test_171"
 }

+ 2 - 0
src/business/trade/index.ts

@@ -619,3 +619,5 @@ export function useOfflineDelivery() {
         formSubmit
     }
 }
+
+

+ 9 - 0
src/constants/funcode.ts

@@ -115,4 +115,13 @@ export enum FunCode {
     PerformanceManualConfirmRsp = 1310724, // 履约手动确认应答
     PerformanceModifyContactReq = 1310735, // 履约修改联络信息请求
     PerformanceModifyContactRsp = 1310736, // 履约修改联络信息回应
+
+    SupplementDepositReq        = 196731, // 补充定金接口请求
+	SupplementDepositRsp        = 196732, // 补充定金接口响应
+	RefundedDepositReq          = 196733, // 退返定金接口请求
+	RefundedDepositRsp          = 196734, // 退返定金接口响应
+	MarketOrderDeliveryApplyReq = 196739, // 按单做市交收申请接口请求
+	MarketOrderDeliveryApplyRsp = 196740, // 按单做市交收申请接口响应
+	DeliveryClientOperatorReq   = 196743, // 交收终端操作接口请求
+	DeliveryClientOperatorRsp   = 196744, // 交收终端操作接口响应
 } 

+ 94 - 0
src/packages/sbyj/views/delivery/components/processing/list/index.vue

@@ -0,0 +1,94 @@
+<!-- 水贝亿爵-我的交收-待审核 -->
+<!-- <template>
+    <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
+        :page-count="pageCount" @refresh="run">
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h4>{{ item.goodsnamedisplay }}</h4>
+                    </div>
+                    <div class="right">
+                        <span>{{ item.orderstatusdisplay }}</span>
+                    </div>
+                </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>交收方向</span>
+                            <span>{{ item.buyorselldisplay }}</span>
+                        </li>
+                        <li>
+                            <span>交收数量</span>
+                            <span>{{ item.deliveryqty }}</span>
+                        </li>
+                        <li>
+                            <span>交收价格</span>
+                            <span>{{ item.orderstatus === 1 ? '--' : item.deliveryprice }}</span>
+                        </li>
+                        <li>
+                            <span>交收货款</span>
+                            <span>{{ item.orderstatus === 1 ? '--' : item.deliveryamount }}</span>
+                        </li>
+                        <li>
+                            <span>交收信息</span>
+                            <span>{{ item.deliveryinfo }}</span>
+                        </li>
+                        <li>
+                            <span>申请日期</span>
+                            <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                </div>
+            </div>
+        </div>
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
+            v-if="componentId" />
+    </app-pull-refresh>
+</template> -->
+
+<!-- <script lang="ts" setup>
+import { shallowRef, defineAsyncComponent } from 'vue'
+import { Button } from 'vant'
+import { formatDate } from '@/filters'
+import { useComponent } from '@/hooks/component'
+import { useRequest } from '@/hooks/request'
+import { queryMineTradeGoodsDeliveryOfflines } from '@/services/api/transfer'
+import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+
+const componentMap = new Map<string, unknown>([
+    ['detail', defineAsyncComponent(() => import('../detail/Index.vue'))],
+])
+
+const dataList = shallowRef<Model.MineTradeGoodsDeliveryOfflinesRsp[]>([])
+const selectedRow = shallowRef<Model.MineTradeGoodsDeliveryOfflinesRsp>()
+const error = shallowRef(false)
+const pullRefreshRef = shallowRef()
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
+    pullRefreshRef.value?.refresh()
+})
+
+const { loading, pageIndex, pageCount, run } = useRequest(queryMineTradeGoodsDeliveryOfflines, {
+    params: {
+        pagesize: 20,
+    },
+    onSuccess: (res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res.data)
+    },
+    onError: () => {
+        error.value = true
+    }
+})
+
+const showComponent = (componentName: string, row: Model.MineTradeGoodsDeliveryOfflinesRsp) => {
+    selectedRow.value = row
+    openComponent(componentName)
+}
+</script> -->

+ 3 - 3
src/packages/sbyj/views/home/main/index.vue

@@ -13,12 +13,12 @@
           <li @click="switchTab(1)">
             <Iconfont label-direction="bottom" icon="icon-cankaohangqing">行情</Iconfont>
           </li>
-          <li @click="routerTo('delivery-list')">
-            <Iconfont label-direction="bottom" icon="icon-dingjinzhuanrang">交收</Iconfont>
-          </li>
           <li @click="routerTo('order-list')">
             <Iconfont label-direction="bottom" icon="icon-diaoqimaoyi">订单</Iconfont>
           </li>
+          <li @click="routerTo('delivery-list')">
+            <Iconfont label-direction="bottom" icon="icon-dingjinzhuanrang">交收</Iconfont>
+          </li>
         </ul>
       </app-block>
       <app-block class="home-main__news">

+ 186 - 26
src/packages/sbyj/views/market/detail/index.vue

@@ -1,7 +1,7 @@
 <template>
     <app-view class="market-detail">
         <template #header>
-            <app-navbar title="点价详情" />
+            <app-navbar :title="quote?.goodsname" />
         </template>
         <table style="width: 100%;">
             <tr>
@@ -9,32 +9,90 @@
                 <td style="text-align: center;">销售价</td>
             </tr>
             <tr>
-                <td style="text-align: center;">449.81</td>
-                <td style="text-align: center;">450.00</td>
+                <td :class="quote?.bidColor" style="text-align: center;">{{ quote?.bid }}</td>
+                <td :class="quote?.askColor" style="text-align: center;">{{ quote?.ask }}</td>
             </tr>
         </table>
         <Form class="pricing-detail__form" ref="formRef" style="padding: 0.2rem; background-color: white;"
                 @submit="onSubmit">
-                <Field name="OrderQty">
-                    <template #input>
-                        <Stepper v-model="formData.OrderQty" :rules="formRules.OrderQty" theme="round" button-size="22"
-                            :auto-fixed="false" integer />
-                    </template>
-                </Field>
-        </Form>
-        <table style="width: 100%;">
-            <tr>
-                <td style="width: calc(`100% / 4`); text-align: center;"><Button>100g</Button></td>
-                <td style="width: calc(`100% / 4`); text-align: center;"><Button>500g</Button></td>
-                <td style="width: calc(`100% / 4`); text-align: center;"><Button>1000g</Button></td>
-                <td style="width: calc(`100% / 4`); text-align: center;"><Button>5000g</Button></td>
-            </tr>
-        </table>
-        <div>
-            <span><Button>我要卖料</Button></span>
-            <span><Button>我要买料</Button></span>
+                <Field name="OrderQty" :rules="formRules.OrderQty">
+                        <template #input>
+                            <div class="goods-listing__stepper">
+                                <div>
+                                    <span><Stepper v-model="orderQty" theme="round" button-size="22" :min="0" :step="qtyStep"
+                                        integer /></span>
+                                    <span>{{ getGoodsUnitName(quote?.goodunitid) }}</span>
+                                </div>
+                                <RadioGroup v-model="qtyStep" direction="horizontal" @change="onRadioChange">
+                                    <Radio v-for="(value, index) in qtyStepList" :key="index" :name="value">{{ value }} {{ getGoodsUnitName(quote?.goodunitid) }}
+                                    </Radio>
+                                </RadioGroup>
+                            </div>
+                        </template>
+                    </Field>
+                    <div>
+            <div>
+                <span><Button @click="commit(BuyOrSell.Sell)">我要卖料</Button></span>
+                <span><Button @click="commit(BuyOrSell.Buy)">我要买料</Button></span>
+            </div>
         </div>
+        </Form>
+        
         <div>订单明细</div>
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h5> {{ item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? '买料订单:' : '卖料订单:' }}{{ item.tHDetailEx.tradeID }} </h5>
+                    </div>
+                    <div class="right">
+                        <span :class="item.tHDetailEx.depositRate >= 0.4 ? 'g-price-up' : ''">{{ parsePercent(item.tHDetailEx.depositRate) }}</span>
+                    </div>
+                </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>订单重量:</span>
+                            <span>{{ item.tHDetailEx.holderQty * item.agreeUnit }}{{ getGoodsUnitName(item.goodsUnitID) }}</span>
+                        </li>
+                        <li>
+                            <span>可用重量:</span>
+                            <span>{{ (item.tHDetailEx.holderQty - item.tHDetailEx.freezeQty ) * item.agreeUnit }}{{ getGoodsUnitName(item.goodsUnitID) }}</span>
+                        </li>
+                        <li>
+                            <span>订单金额:</span>
+                            <span>{{ item.tHDetailEx.holderAmount }}</span>
+                        </li>
+                        <li>
+                            <span>订单价格:</span>
+                            <span>{{ formatDecimal(item.tHDetailEx.holderPrice) }}</span>
+                        </li>
+                        <li>
+                            <span>已付定金:</span>
+                            <span>{{ item.tHDetailEx.payedDeposit }}</span>
+                        </li>
+                        <li>
+                            <span>已补定金:</span>
+                            <span>{{ handleNumberValue(item.tHDetailEx.restockDeposit) }}</span>
+                        </li>
+                        <li>
+                            <span>订单天数:</span>
+                            <span>{{ item.tHDetailEx.holdDays }}天</span>
+                        </li>
+                        <li>
+                            <span>滞纳金:</span>
+                            <span>{{ handleNumberValue(item.tHDetailEx.callAteFee) }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                    <Button size="small" round>补充</Button>
+                    <Button size="small" round>交收</Button>
+                    <Button size="small" round>转让</Button>
+                </div>
+            </div>
+        </div>
     </app-view>
 </template>
 
@@ -43,26 +101,128 @@
 import { useOrder } from '@/business/trade'
 import { shallowRef, onMounted, onUnmounted, computed } from 'vue'
 import { Form, Field, Stepper, Button, FieldRule, FormInstance, Radio, RadioGroup, Checkbox } from 'vant'
+import { useNavigation } from '@/packages/sbyj/router/navigation'
+import { useFuturesStore } from '@/stores'
+import { getGoodsUnitName } from '@/constants/unit'
+import { querySBYJMyOrders } from '@/services/api/order'
+import { useRequest } from '@/hooks/request'
+import { formatDate, formatDecimal, parsePercent, handleNumberValue } from '@/filters'
+import { useComponent } from '@/hooks/component'
+import { fullloading, dialog } from '@/utils/vant'
+import { EPriceMode, EValidType, EOrderOperateType, EBuildType } from '@/constants/client'
+import { BuyOrSell } from '@/constants/order'
+import quoteSocket from '@/services/websocket/quote'
 
+const formRef = shallowRef<FormInstance>()
+const { router } = useNavigation()
+const { getQueryString, getQueryStringToNumber } = useNavigation()
 const { formData, formSubmit } = useOrder()
+const futuresStore = useFuturesStore()
+const goodscode = getQueryString('goodscode')
+const quote = futuresStore.getQuoteInfo(goodscode)
+const qtyStep = shallowRef(1) // 数量步长
+const dataList = shallowRef<Model.SBYJMyOrderRsp[]>([])
+const error = shallowRef(false)
+const subscribe = quoteSocket.createSubscribe()
+const selectedRow = shallowRef<Model.SBYJMyOrderRsp>()
+const orderQty = shallowRef(1) // 数量
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
+    // pullRefreshRef.value?.refresh()
+})
+// 合约乘数
+const agreeunit = computed(() => quote.value?.agreeunit ?? 0)
+// 数量步长列表
+const qtyStepList = computed(() => {
+    return [
+        agreeunit.value * 1,
+        agreeunit.value * 5,
+        agreeunit.value * 10,
+        agreeunit.value * 50,
+    ]
+})
+
+const { loading, pageIndex, pageCount, run } = useRequest(querySBYJMyOrders, {
+    params: {
+        goodsId: quote?.value?.goodsid
+    },
+    onSuccess: (res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res.data)
+    },
+    onError: () => {
+        error.value = true
+    }
+})
+
+const commit = (buyOrSell: BuyOrSell) => {
+    formData.BuyOrSell = buyOrSell
+    formData.OrderPrice = buyOrSell === BuyOrSell.Buy ? quote.value?.ask : quote.value?.bid
+    formRef.value?.submit()
+}
+
+// 下单
+const onSubmit = () => {
+    dialog({
+        allowHtml: true,
+        message: `确认要提交吗?\n`,
+        showCancelButton: true,
+    }).then(() => {
+
+        const { marketid = 0, goodsid = 0 } = quote.value ?? {}
+        /// 获取对应的市场ID
+        formData.MarketID = marketid
+        formData.PriceMode = EPriceMode.PRICEMODE_MARKET
+        formData.GoodsID = goodsid
+        formData.TimevalidType = EValidType.VALIDTYPE_DR
+        formData.OperateType = EOrderOperateType.ORDEROPERATETYPE_NORMAL
+        formData.BuildType = EBuildType.BUILDTYPE_OPEN
+        formData.OrderQty = orderQty.value / agreeunit.value // 数量÷合约乘数
+
+        fullloading((hideLoading) => {
+            formSubmit().then(() => {
+                hideLoading()
+                dialog('提交成功。').then(() => closed(true))
+            }).catch((err) => {
+                hideLoading(err, 'fail')
+            })
+        })
+    })
+}
 
 onMounted(() => {
-    formData.OrderQty = 100
+    subscribe.start(goodscode)
+    orderQty.value = agreeunit.value
+    qtyStep.value = qtyStepList.value[0]
 })
 
+onUnmounted(() => subscribe.stop())
+
 // 表单验证规则
 const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
     OrderQty: [{
         message: '请输入数量',
         validator: () => {
-            return !!formData.OrderQty
+            return !!orderQty.value
         }
     }],
 }
 
-// 下单
-const onSubmit = () => {
-    console.log("onSubmit")
+const onRadioChange = (value: number) => {
+    orderQty.value = value
+}
+
+const showComponent = (componentName: string, row: Model.SBYJMyOrderRsp) => {
+    selectedRow.value = row
+    openComponent(componentName)
+}
+
+// 关闭弹窗
+const closed = (isRefresh = true) => {
+    // refresh.value = isRefresh
+    // showModal.value = false
 }
 
 </script>

+ 1 - 1
src/packages/sbyj/views/market/list/index.vue

@@ -114,7 +114,7 @@ const touristRefGoodsList = computed(() => {
 
 // *************** 已登录 ***************
 const dataList = computed(() => {
-    const list = futuresStore.quoteList.filter((e) => e.marketid === 99201)
+    const list = futuresStore.quoteList.filter((e) => e.trademode === 52 || e.trademode === 99 )
     return list.map((e) => ({
         goodscode: e.goodscode,
         goodsname: e.goodsname,

+ 10 - 0
src/packages/sbyj/views/mine/index.vue

@@ -48,6 +48,16 @@
                 </div>
             </div>
         </div>
+        <app-block class="mine-iconbar">
+            <ul>
+                <li @click="routerTo('order-list')">
+                    <Iconfont label-direction="bottom" icon="icon-diaoqimaoyi">订单</Iconfont>
+                </li>
+                <li @click="routerTo('delivery-list')">
+                    <Iconfont label-direction="bottom" icon="icon-dingjinzhuanrang">交收</Iconfont>
+                </li>
+            </ul>
+        </app-block>
         <app-block class="g-navmenu">
             <CellGroup>
                 <Cell is-link :to="{ name: 'account-certification' }"

+ 88 - 0
src/packages/sbyj/views/order/list/index.vue

@@ -3,8 +3,96 @@
         <template #header>
             <app-navbar title="我的订单" />
         </template>
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h5> {{ item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? '买料订单:' : '卖料订单:' }}{{ item.tHDetailEx.tradeID }} </h5>
+                    </div>
+                    <div class="right">
+                        <span :class="item.tHDetailEx.depositRate >= 0.4 ? 'g-price-up' : ''">{{ parsePercent(item.tHDetailEx.depositRate) }}</span>
+                    </div>
+                </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>订单重量:</span>
+                            <span>{{ item.tHDetailEx.holderQty * item.agreeUnit }}{{ getGoodsUnitName(item.goodsUnitID) }}</span>
+                        </li>
+                        <li>
+                            <span>可用重量:</span>
+                            <span>{{ (item.tHDetailEx.holderQty - item.tHDetailEx.freezeQty ) * item.agreeUnit }}{{ getGoodsUnitName(item.goodsUnitID) }}</span>
+                        </li>
+                        <li>
+                            <span>订单金额:</span>
+                            <span>{{ item.tHDetailEx.holderAmount }}</span>
+                        </li>
+                        <li>
+                            <span>订单价格:</span>
+                            <span>{{ formatDecimal(item.tHDetailEx.holderPrice) }}</span>
+                        </li>
+                        <li>
+                            <span>已付定金:</span>
+                            <span>{{ item.tHDetailEx.payedDeposit }}</span>
+                        </li>
+                        <li>
+                            <span>已补定金:</span>
+                            <span>{{ handleNumberValue(item.tHDetailEx.restockDeposit) }}</span>
+                        </li>
+                        <li>
+                            <span>订单天数:</span>
+                            <span>{{ item.tHDetailEx.holdDays }}天</span>
+                        </li>
+                        <li>
+                            <span>滞纳金:</span>
+                            <span>{{ handleNumberValue(item.tHDetailEx.callAteFee) }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                    <Button size="small" round>补充</Button>
+                    <Button size="small" round>交收</Button>
+                    <Button size="small" round>转让</Button>
+                </div>
+            </div>
+        </div>
     </app-view>
 </template>
 
 <script lang="ts" setup>
+
+import { shallowRef, onMounted, onUnmounted, computed } from 'vue'
+import { BuyOrSell } from '@/constants/order'
+import { formatDate, formatDecimal, parsePercent, handleNumberValue } from '@/filters'
+import { getGoodsUnitName } from '@/constants/unit'
+import { useComponent } from '@/hooks/component'
+import { useRequest } from '@/hooks/request'
+import { querySBYJMyOrders } from '@/services/api/order'
+
+const dataList = shallowRef<Model.SBYJMyOrderRsp[]>([])
+const selectedRow = shallowRef<Model.SBYJMyOrderRsp>()
+    const error = shallowRef(false)
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => {
+    // pullRefreshRef.value?.refresh()
+})
+
+const { loading, pageIndex, pageCount, run } = useRequest(querySBYJMyOrders, {
+    onSuccess: (res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res.data)
+    },
+    onError: () => {
+        error.value = true
+    }
+})
+
+const showComponent = (componentName: string, row: Model.SBYJMyOrderRsp) => {
+    selectedRow.value = row
+    openComponent(componentName)
+}
+
 </script>

+ 53 - 0
src/services/api/order/index.ts

@@ -196,4 +196,57 @@ export function queryTradePosition(config: RequestConfig<Model.TradePositionReq>
             ...config.data
         },
     })
+}
+
+/**
+ * 获取我的订单列表(水贝亿爵)
+ * @param config 
+ * @returns 
+ */
+export function querySBYJMyOrders(config: RequestConfig<Model.SBYJMyOrderReq> = {}) {
+    return http.commonRequest<Model.SBYJMyOrderRsp[]>({
+        url: '/sbyj/GetMyOrders',
+        params: {
+            userId: loginStore.userId,
+            ...config.data
+        },
+    })
+}
+
+/**
+ * 查询我的交收(水贝亿爵)
+ */
+export function queryMyTradeGoodsDeliveryOfflines(config: RequestConfig<Model.MyTradeGoodsDeliveryOfflineReq> = {}) {
+    return http.commonRequest<Model.MyTradeGoodsDeliveryOfflineRsp[]>({
+        url: '/sbyj/QueryMyTradegoodsdeliveryoffline',
+        params: {
+            userid: loginStore.userId,
+            ...config.data
+        },
+    })
+}
+
+/**
+ * 查询我的交收-订单明细(水贝亿爵)
+ */
+export function queryMyDeliveryofflinedetails(config: RequestConfig<Model.MyDeliveryOfflineDetailReq> = {}) {
+    return http.commonRequest<Model.MyDeliveryofflinedetailRsp[]>({
+        url: '/sbyj/QueryMyDeliveryofflinedetail',
+        params: {
+            userid: loginStore.userId,
+            ...config.data
+        },
+    })
+}
+
+/**
+ * 查询我的交收-操作流水(水贝亿爵)
+ */
+export function queryMyDeliveryOfflineOperateLogs(config: RequestConfig<Model.MyDeliveryOfflineOperateLogReq> = {}) {
+    return http.commonRequest<Model.MyDeliveryOfflineOperateLogRsp[]>({
+        url: '/sbyj/QueryMyDeliveryofflineoperatelog',
+        params: {
+            ...config.data
+        },
+    })
 }

+ 69 - 1
src/services/api/trade/index.ts

@@ -253,7 +253,7 @@ export function holdAppendDeposit(config: RequestConfig<Partial<Proto.HoldAppend
 }
 
 /**
- * 线下交收申请请求
+ * 线下交收申请请求(水贝亿爵)
  */
 export function offlineDelivery(config: RequestConfig<Partial<Proto.OfflineDeliveryReq>>) {
     return http.mqRequest<Proto.OfflineDeliveryRsp>({
@@ -267,4 +267,72 @@ export function offlineDelivery(config: RequestConfig<Partial<Proto.OfflineDeliv
         responseCode: 'OfflineDeliveryRsp',
         marketId: 49201
     })
+}
+
+/**
+ * 补充定金接口请求(水贝亿爵)
+ */
+export function SupplementDeposit(config: RequestConfig<Partial<Proto.SupplementDepositReq>>) {
+    return http.mqRequest<Proto.SupplementDepositRsp>({
+        data: {
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            UserID: loginStore.userId,
+            ...config.data
+        },
+        requestCode: 'SupplementDepositReq',
+        responseCode: 'SupplementDepositRsp',
+        marketId: 52101
+    })
+}
+
+/**
+ * 退返定金接口请求(水贝亿爵)
+ */
+export function RefundedDeposit(config: RequestConfig<Partial<Proto.RefundedDepositReq>>) {
+    return http.mqRequest<Proto.RefundedDepositRsp>({
+        data: {
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            UserID: loginStore.userId,
+            ...config.data
+        },
+        requestCode: 'RefundedDepositReq',
+        responseCode: 'RefundedDepositRsp',
+        marketId: 52101
+    })
+}
+
+/**
+ * 按单做市交收申请接口请求(水贝亿爵)
+ */
+export function MarketOrderDeliveryApply(config: RequestConfig<Partial<Proto.MarketOrderDeliveryApplyReq>>) {
+    return http.mqRequest<Proto.MarketOrderDeliveryApplyRsp>({
+        data: {
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            UserID: loginStore.userId,
+            ...config.data
+        },
+        requestCode: 'MarketOrderDeliveryApplyReq',
+        responseCode: 'MarketOrderDeliveryApplyRsp',
+        marketId: 52101
+    })
+}
+
+/**
+ * 交收终端操作接口请求(水贝亿爵)
+ */
+export function DeliveryClientOperator(config: RequestConfig<Partial<Proto.DeliveryClientOperatorReq>>) {
+    return http.mqRequest<Proto.DeliveryClientOperatorRsp>({
+        data: {
+            AccountID: accountStore.accountId,
+            ClientSerialNo: v4(),
+            UserID: loginStore.userId,
+            ...config.data
+        },
+        requestCode: 'DeliveryClientOperatorReq',
+        responseCode: 'DeliveryClientOperatorRsp',
+        marketId: 52101
+    })
 }

+ 276 - 0
src/types/model/order.d.ts

@@ -1441,4 +1441,280 @@ declare namespace Model {
         tradetype: number
 
     }
+
+    /*  查询我的订单(水贝亿爵) 请求*/
+    interface SBYJMyOrderReq {
+        /// 用户ID
+        userId?: number
+        /// 商品ID
+        goodsId?: number
+    }
+
+    interface TradeHolderDetailEx {
+        /// 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        tradeID: number;
+        /// 方向 - 0:买 1:卖
+        buyOrSell: number;
+        /// 交易日(yyyyMMdd)
+        tradeDate: string;
+        /// 市场ID
+        marketID: number;
+        /// 商品ID
+        goodsID: number;
+        /// 用户ID
+        userID: number;
+        /// 账号ID
+        accountID: number;
+        /// 对手用户ID
+        matchUserID: number;
+        /// 对手账号ID
+        matchAccountID: number;
+        /// 建仓数量
+        openQty: number;
+        /// 成交金额
+        tradeAmount: number;
+        /// 建仓价格
+        openPrice: number;
+        /// 持仓数量
+        holderQty: number;
+        /// 持仓金额
+        holderAmount: number;
+        /// 持仓价格
+        holderPrice: number;
+        /// 冻结数量
+        freezeQty: number;
+        /// 交收手数(已交收)
+        deliveryQty: number;
+        /// 持仓天数
+        holdDays: number;
+        /// 已付定金
+        payedDeposit: number;
+        /// 补充定金
+        restockDeposit: number;
+        /// 滞纳金起计天数
+        lateFeeDays: number;
+        /// 滞纳金收取方式 1:比率 2:固定
+        lateFeeAlgorithm: number;
+        /// 滞纳金收取值
+        lateFeeValue: number;
+        /// 已计滞纳金
+        callAteFee: number;
+        /// 提示定金率
+        promptDepositRate: number;
+        /// 斩仓定金率
+        cutDepositRate: number;
+        /// 提示价格
+        promptPrice: number;
+        /// 斩仓价格
+        cutPrice: number;
+        /// 平仓盈亏
+        closePL: number;
+        /// 浮动盈亏
+        floatPL: number;
+        /// 订单定金率
+        depositRate: number;
+        /// 可退定金
+        refundableDeposit: number;
+    }
+
+    /// 交易持仓扩展表记录
+    interface SBYJMyOrderRsp {
+        /// 交易持仓扩展表记录
+        tHDetailEx: TradeHolderDetailEx;
+        /// 浮动盈亏
+        floatPL: number;
+        /// 订单定金率
+        depositRate: number;
+        /// 可退定金
+        refundableDeposit: number;
+        /// 商品代码
+        goodsCode: string;
+        /// 商品名称
+        goodsName: string;
+        /// 单位
+        goodsUnitID: number;
+        /// 合约单位
+        agreeUnit: number;
+        /// 小数位位数
+        decimalPlace: number;
+        /// 行情最小变动单位
+        quoteMinUnit: number;
+        /// 单位名称
+        goodsUnit: string;
+    }
+
+    /* 查询我的交收 请求*/
+    interface MyTradeGoodsDeliveryOfflineReq {
+        /// 页码
+        page?: number
+        /// 每页条数
+        pagesize?: number
+        /// 用户id
+        userid?: number
+        /// 交收单状态2(52模式使用) - 1:待审核 2:待确认 3:待付款 4:付款中 5:已完成付款 6:处理中 20:交收完成 21:审核拒绝 22:确认过期 23:付款过期 24:财务撤销 -- 枚举deliveryStatus
+        deliverystatus: number
+    }
+
+    /* 查询我的交收 回复*/
+    interface MyTradeGoodsDeliveryOfflineRsp {
+        /// 交收单号(905+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        deliveryorderID?: number;
+        /// 申请用户ID
+        userID?: number;
+        /// 账户ID
+        accountID?: number;
+        /// 商品ID
+        goodsID?: number;
+        /// 市场ID
+        marketID?: number;
+        /// 交收方向 - 0:买 1:卖
+        buyOrSell?: number;
+        /// 交收手数
+        deliveryLot?: number;
+        /// 交收数量 (手数*合约乘数)
+        deliveryQty?: number;
+        /// 交收信息
+        deliveryInfo?: string;
+        /// 对手方UserID
+        matchUserID?: number;
+        /// 对手方AccountID
+        matchAccountID?: number;
+        /// 申请时间
+        reqTime?: string;
+        /// 申请交易日
+        reqTradeDate?: string;
+        /// 线下交收单状态 - 1:待处理 2:交收中 3:已完成 4:申请失败 枚举deliveryOrderStatus
+        orderStatus?: number;
+        /// 交收价格
+        deliveryPrice?: number;
+        /// 交收货款
+        deliveryAmount?: number;
+        /// 完成时间
+        closeTime?: Date;
+        /// 完成交易日
+        closeTradeDate?: string;
+        /// 交割手续费
+        deliveryCharge?: number;
+        /// 手续费收取方式  1:比率  2:固定
+        feeAlgorithm?: number;
+        /// 会员手续费设置值
+        memberChargeValue?: number;
+        /// 交易所手续费设置值
+        exchChargeValue?: number;
+        /// 处理状态
+        handleStatus?: number;
+        /// 交收升贴水(每单位)
+        deliveryPremium?: number;
+        /// 交收总货款 = 交收货款 + 交收升贴水 * 交收数量
+        deliveryTotalAmount?: number;
+        /// 交收单状态2(52模式使用) - 1:待审核 2:待确认 3:待付款 4:付款中 5:已完成付款 6:处理中 20:交收完成 21:审核拒绝 22:确认过期 23:付款过期 24:财务撤销 -- 枚举deliveryStatus
+        deliveryStatus?: number;
+        /// 确认截止时间(买交收)
+        toConfirmTime?: Date;
+        /// 付款截止时间(买交收)
+        toPayTime?: Date;
+        /// 已付货款
+        payedAmount?: number;
+        /// 冻结货款
+        freezeAmount?: number;
+    }
+
+    /* 查询我的交收-订单明细 请求*/
+    interface MyDeliveryOfflineDetailReq {
+        /// 页码
+        page?: number
+        /// 每页条数
+        pagesize?: number
+        /// 用户id
+        userid?: number
+        /// 交收单号(905+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        deliveryorderid: number
+    }
+
+    /* 查询我的交收-订单明细 回复*/
+    interface MyDeliveryofflinedetailRsp {
+        /// 明细单号(906+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        deliverydetailid?: number;
+        /// 交收单号(905+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        deliveryorderid?: number;
+        /// 成交单号(101+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        tradeid?: number;
+        /// 方向 - 0:买 1:卖
+        buyorsell?: number;
+        /// 用户ID
+        userid?: number;
+        /// 账号ID
+        accountid?: number;
+        /// 持仓手数
+        holdlot?: number;
+        /// 持仓数量(手数*合约乘数)
+        holdqty?: number;
+        /// 申请交收手数
+        deliverylot?: number;
+        /// 申请交收数量 (手数*合约乘数)
+        deliveryqty?: number;
+        /// 交收价格
+        deliveryprice?: number;
+        /// 交收货款
+        deliveryamount?: number;
+        /// 创建时间
+        createtime?: string;
+    }
+
+    /* 查询我的交收-操作流水 请求*/
+    interface MyDeliveryOfflineOperateLogReq {
+        /// 页码
+        page?: number
+        /// 每页条数
+        pagesize?: number
+        /// 交收单ID
+        deliveryorderid: number
+        /// 操作类型 - 1:交收流程 2:付款流水
+        operatetype?: number
+        /// 付款方式 - 1:线上支付2:线下支付 - 枚举deliveryPayMode
+        deliverypaymode?: number
+        /// 确认状态 - 1:未确认 2:已确认 - 枚举confirmStatus
+        confirmstatus?: number
+    }
+
+    /* 查询我的交收-操作流水 回复*/
+    interface MyDeliveryOfflineOperateLogRsp {
+        /// 明细单号(907+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
+        operatelogid?: number;
+        /// 交收单ID
+        deliveryorderid?: number;
+        /// 操作类型 - 1:交收流程 2:付款流水
+        operatetype?: number;
+        /// 当前交收状态(OperateType=1时) -  枚举deliveryStatus
+        curdeliverystatus?: number;
+        /// 操作后交收状态(OperateType=1时) -  枚举deliveryStatus
+        aftdeliverystatus?: number;
+        /// 操作人来源 - 1:管理端 2:终端 3:系统
+        operatorsrc?: number;
+        /// 操作人ID - systemmanager的autoid 或 loginaccount的loginid
+        operatorid?: number;
+        /// 操作人账号 - systemmanager的logincode 或 loginaccount的logincode,无则用loginid
+        operatoraccount?: string;
+        /// 操作人名称 - systemmanager的username 或 loginaccount的logincode,无则用loginid
+        operatorname?: string;
+        /// 操作备注
+        remark?: string;
+        /// 操作时间
+        operatetime?: string;
+        /// 文件名称
+        filename?: string;
+        /// 文件地址
+        fileaddress?: string;
+        /// 付款方式 - 1:线上支付2:线下支付 - 枚举deliveryPayMode
+        deliverypaymode?: number;
+        /// 付款金额
+        payamount?: number;
+        /// 确认状态 - 1:未确认 2:已确认 - 枚举confirmStatus
+        confirmstatus?: number;
+        /// 确认人
+        confirmid?: number;
+        /// 确认时间
+        confirmtime?: string;
+    }
+
 }

+ 111 - 23
src/types/proto/trade.d.ts

@@ -581,14 +581,14 @@ declare global {
         // 线下交收申请请求
         interface OfflineDeliveryReq {
             Header?: IMessageHead; // 消息头
-			AccountID?: number; // 账号ID
-			UserID?: number; // 用户ID
-			GoodsCode?: string; // 商品代码
+            AccountID?: number; // 账号ID
+            UserID?: number; // 用户ID
+            GoodsCode?: string; // 商品代码
             GoodsID?: number; // 商品ID
-			BuyOrSell?: number; // 方向
-			DeliveryLot?: number; // 交收手数
-			DeliveryInfo?: string; // 交收信息
-			ClientTicket?: string; // 客户端流水号
+            BuyOrSell?: number; // 方向
+            DeliveryLot?: number; // 交收手数
+            DeliveryInfo?: string; // 交收信息
+            ClientTicket?: string; // 客户端流水号
         }
         // 线下交收申请请求
         interface OfflineDeliveryRsp {
@@ -603,25 +603,113 @@ declare global {
 
         // 补充定金接口请求
         interface SupplementDepositReq {
-            Header?: IMessageHead; // 消息头
-		    TradeID: number; // 成交单号,必填
-            BuyOrSell: number; // 买卖方向,必填
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 交易账号,必填
-            RestockDeposit: number; // 补充定金,必填
-            MarketID: number; // 市场ID,必填
-            ClientSerialNo: string; // 客户端流水号
-            ClientType: number; // 终端类型
+            Header?: MessageHead;
+            TradeID?: number; // 成交单号,必填
+            BuyOrSell?: number; // 买卖方向,必填
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            RestockDeposit?: number; // 补充定金,必填
+            MarketID?: number; // 市场ID,必填
+            ClientSerialNo?: string; // 客户端流水号
+            ClientType?: number; // 终端类型
         }
+
         // 补充定金接口响应
         interface SupplementDepositRsp {
-            Header?: IMessageHead; // 消息头
-            RetCode: number; // 返回码
-            RetDesc: string; // 描述信息
-            TradeID: number; // 成交单号,必填
-            UserID: number; // 用户ID,必填
-            AccountID: number; // 交易账号,必填
-            ClientSerialNo: string; // 客户端流水号
+            Header?: MessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            TradeID?: number; // 成交单号,必填
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            ClientSerialNo?: string; // 客户端流水号
         }
+
+        // 退返定金接口请求
+        interface RefundedDepositReq {
+            Header?: MessageHead;
+            TradeID?: number; // 成交单号,必填
+            BuyOrSell?: number; // 买卖方向,必填
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            RestockDeposit?: number; // 补充定金,必填
+            MarketID?: number; // 市场ID,必填
+            ClientSerialNo?: string; // 客户端流水号
+            ClientType?: number; // 终端类型
+        }
+
+        // 退返定金接口响应
+        interface RefundedDepositRsp {
+            Header?: MessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            TradeID?: number; // 成交单号,必填
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            ClientSerialNo?: string; // 客户端流水号
+        }
+
+        // 持仓明细
+        interface MarketOrderHoldDetails {
+            TradeID?: number; // 成交单号,必填
+            DeliveryQty?: number; // 交收数量,必填
+        }
+
+        // 按单做市交收申请接口请求
+        interface MarketOrderDeliveryApplyReq {
+            Header?: MessageHead;
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            BuyOrSell?: number; // 方向,必填
+            HoldDetails: MarketOrderHoldDetails[]; // 持仓明细,必填
+            ClientSerialNo?: string; // 客户端流水号
+            ClientType?: number; // 终端类型
+        }
+
+        // 按单做市交收申请接口响应
+        interface MarketOrderDeliveryApplyRsp {
+            Header?: MessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            ClientSerialNo?: string; // 客户端流水号
+        }
+
+        // 付款凭证
+        interface PayAttrs {
+            FileName?: string; // 文件名,必填
+            FileAddr?: string; // 文件地址,必填
+        }
+
+        // 交收终端操作接口请求
+        interface DeliveryClientOperatorReq {
+            Header?: MessageHead;
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            DeliveryOrderID?: number; // 交收单号,必填
+            OperateType?: number; // 操作类型,必填1:客户确认2:客户付款
+            DeliveryPayMode?: number; // 付款方式,必填1:线上支付2:线下支付
+            PayAmount?: number; // 付款金额,必填
+            PayAttr?: PayAttrs[]; // 付款凭证,必填
+            OperatorID?: number; // 操作人ID
+            OperatorAccount?: string; // 操作人账号
+            OperatorName?: string; // 操作人名称
+            Remark?: string; // 操作备注
+            ClientSerialNo?: string; // 客户端流水号
+            ClientType?: number; // 终端类型
+        }
+
+        // 交收终端操作接口响应
+        interface DeliveryClientOperatorRsp {
+            Header?: MessageHead; // 消息头
+            RetCode?: number; // 返回码
+            RetDesc?: string; // 描述信息
+            DeliveryOrderID?: number; // 交收单号,必填
+            UserID?: number; // 用户ID,必填
+            AccountID?: number; // 交易账号,必填
+            ClientSerialNo?: string; // 客户端流水号
+        }
+
     }
 }