瀏覽代碼

commit 现货合同

xkwg 4 年之前
父節點
當前提交
72815411da

+ 1 - 1
public/proto/mtp.proto

@@ -848,7 +848,7 @@ message GldSpotContractInfo {
 	optional double PricedAmount = 30; // double 已定价金额
 	optional uint64 SpotGoodsBrandID = 31; // uint64 现货品牌ID
 	optional string Remark = 32; // string 合同备注
-	optional uint64 SaleUserID = 33; // uint64 业务员ID
+	optional uint64 SaleUserID = 33; // uint64 业务员IDSpotContractOperateReq
 	optional uint64 AccountID = 34; // uint64 期货账户ID
 	optional uint32 BizType = 35; // uint32 业务类型 - 1:套保 2:套利
 	optional uint32 CurrencyID = 36; // uint32 结算币种ID

+ 43 - 3
src/services/proto/spotcontract/index.ts

@@ -1,14 +1,14 @@
 import APP from "@/services";
 import { getSelectedAccountId, getUserId } from "@/services/bus/account";
-import { GldErmcpSpotContractOperateReq } from "@/services/proto/spotcontract/interface";
+import {GldErmcpSpotContractOperateReq, SpotContractOperateReq} from "@/services/proto/spotcontract/interface";
 import { buildProtoReq50, parseProtoRsp50 } from "@/services/socket/protobuf/buildReq";
 import { Callback } from "@/utils/websocket";
 import { v4 as uuidv4 } from 'uuid';
+import {getTimeValue} from "@/utils/time";
 
 /**(重点提醒 这里属于管理端接口,仅用于新增)以上来自android代码  回头需要确认
  * 新增 / 修改采购合同报文 (很多修改合同操作也在这)
- * @param
- * @param param
+ * @param param 1:保存草稿2:提交申请3:删除4:审核通过
  */
 export const orderContract = (param: GldErmcpSpotContractOperateReq): Promise<any> => {
 
@@ -45,3 +45,43 @@ export const orderContract = (param: GldErmcpSpotContractOperateReq): Promise<an
         } as Callback);
     });
 }
+
+/**
+ *现货合同操作请求
+ * @param param 2 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
+ */
+export const spotContractStatus = (param: SpotContractOperateReq): Promise<any> => {
+
+    const OperateSrc = 2; // uint32 操作来源-1:管理端2:终端
+    const ClientTicket: string = uuidv4();  // 客户端流水号
+    const UserID: number = getUserId(); // 用户id
+
+    const reqParams = {
+        ...param, OperateSrc, ClientTicket, UserID
+    }
+    debugger
+    return new Promise((resolve, reject) => {
+        const params = {
+            protobufName: 'SpotContractOperateReq',
+            funCodeName: 'SpotContractOperateReq',
+            reqParams: reqParams,
+            msgHeadParams: {
+                AccountID: getSelectedAccountId(),
+                MarketID: 18,
+                GoodsID: 0,
+            }
+        };
+        const package50 = buildProtoReq50(params);
+        APP.sendTradingServer(package50, undefined, {
+            onSuccess: (res) => {
+                const { isSuccess, result } = parseProtoRsp50(res, 'SpotContractOperateRsp');
+                if (isSuccess) {
+                    resolve(result);
+                } else {
+                    reject(result);
+                }
+            },
+            onFail: (err) => reject(err.message),
+        } as Callback);
+    });
+}

+ 2 - 5
src/services/proto/spotcontract/interface.ts

@@ -64,14 +64,11 @@ export interface GldSpotContractInfo {
     CurrencyID: number // 结算币种ID
 }
 
-//套保计划操作请求  (一部分操作用这个借口)
+//现货合同操作请求  (一部分操作用这个借口)
 export interface SpotContractOperateReq {
-    SpotContractID: number; // uint64 现货合同ID(602+Unix秒时间戳(10位)+xxxxxx)
+    SpotContractID: number; // 现货合同id
     OperateType: number; // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
-    OperateSrc: number; // uint32 操作来源-1:管理端2:终端
-    UserID: number; // uint64 操作用户ID
     Remark: string; // string 操作备注
-    ClientTicket: string; // string 客户端流水号
     Info?: SpotContractInfo; // SpotContractInfo 现货合同信息
 }
 

+ 4 - 4
src/views/information/spot-contract/components/cancel/index.vue

@@ -188,7 +188,7 @@ import {
     getPriceTypeName
 } from "@/views/information/spot-contract/setup";
 import {message, Modal} from "ant-design-vue";
-import {deleteOrderContract} from "@/views/information/spot-contract/components/setup";
+import { OrderContractControl} from "@/views/information/spot-contract/components/setup";
 
 export default defineComponent({
     name: 'spot-contract-detail',
@@ -201,7 +201,7 @@ export default defineComponent({
     },
     setup(props, context) {
         const { visible, cancel } = closeModal('spot_contract_btn_cancel');
-        const {loading, orderContractState} = deleteOrderContract()
+        const {loading, orderContractState} = OrderContractControl()
         const maskClosableFlag = ref<boolean>(false);
         function submit() {
             loading.value = true;
@@ -210,8 +210,8 @@ export default defineComponent({
                 okText: '确认撤销',
                 cancelText: '取消',
                 onOk() {
-                    // 删除客户资料
-                    orderContractState(props.selectedRow.spotcontractid)
+                    // 撤销合同
+                    orderContractState(props.selectedRow.spotcontractid, 5)
                         .then(res => {
                             message.success(res);
                             // 通知上层  刷新数据

+ 39 - 22
src/views/information/spot-contract/components/check/index.vue

@@ -22,37 +22,37 @@
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="合同编号">
-              <span class="white">NPCQ-2020121001</span>
+              <span class="white">{{ formatValue(selectedRow.contractno) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="合同类型">
-              <span class="white">采购合同</span>
+              <span class="white">{{ getContractTypeName(selectedRow.contracttype) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="业务类型">
-              <span class="white">套保</span>
+              <span class="white">{{ getBizTypeName(selectedRow.biztype) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="采购方">
-                <span class="white">河北石家庄刚强矿石公司</span>
+                <span class="white">{{ formatValue(selectedRow.buyusername) }}</span>
             </a-form-item>
           </a-col>
       </a-row>
       <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="销售方">
-             <span class="white">菏泽已成钢材有限公司</span>
+             <span class="white">{{ formatValue(selectedRow.sellusername) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="合同附件">
                 <div class="upload">
-                    <div class="look">查看附件</div>
+                    <div class="look">{{ formatValue(selectedRow.contracctstatus) }}</div>
                 </div>
             </a-form-item>
           </a-col>
@@ -60,7 +60,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
             <a-form-item label="状态">
-             <span class="green">正常</span>
+             <span class="green">{{ formatValue(getContractStatusName(selectedRow.contracctstatus)) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
@@ -70,31 +70,31 @@
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="现货品种">
-              <span class="white">螺纹钢12</span>
+              <span class="white">{{ formatValue(selectedRow.deliverygoodsname) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="品类">
-              <span class="white">10mm</span>
+              <span class="white">{{ formatValue(selectedRow.wrstandardname) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="品牌">
-              <span class="white">江铜</span>
+              <span class="white">{{ formatValue(selectedRow.brandname) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="标仓系数">
-                <span class="white">1.1</span>
+                <span class="white">{{ formatValue(selectedRow.convertfactor) }}</span>
             </a-form-item>
           </a-col>
       </a-row>
       <a-row :gutter="24">
           <a-col :span="24">
             <a-form-item label="商品规格">
-              <span class="white">符合国际GB/T1196-2008AL99.70规定,其中铝含量不低于99.7%</span>
+              <span class="white">{{ formatValue(selectedRow.spotgoodsdesc) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
@@ -104,36 +104,36 @@
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="定价类型">
-              <span class="white">点价</span>
+              <span class="white">{{ getPriceTypeName(formatValue(selectedRow.pricetype)) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="数量">
-              <span class="white">菏泽已成钢材有限公司</span>
+              <span class="white">{{ formatValue(selectedRow.qty) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="点价合约">
-              <span class="white">CU2011</span>
+              <span class="white">{{ formatValue(selectedRow.goodscode) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="升贴水">
-              <span class="white">100元/吨</span>
+              <span class="white">{{ formatValue(selectedRow.pricemove) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="点价期">
-              <span class="white">2020-12-10~2021-02-10</span>
+              <span class="white">{{ formatValue(formatTime(selectedRow.startdate, "d") + '--' + formatTime(selectedRow.enddate, "d")) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
             <a-form-item label="交收期">
-              <span class="white">2020-12-10~2021-02-10</span>
+              <span class="white">{{ formatValue(formatTime(selectedRow.deliverystartdate, "d") + '--' + formatTime(selectedRow.deliveryenddate, "d"))}}</span>
             </a-form-item>
           </a-col>
         </a-row>
@@ -143,7 +143,7 @@
         <a-row :gutter="24">
           <a-col :span="12">
             <a-form-item label="保证金">
-              <span class="white">13700元</span>
+              <span class="white">{{ formatValue(selectedRow.contractmargin) }}</span>
             </a-form-item>
           </a-col>
           <a-col :span="12">
@@ -194,7 +194,7 @@
       <a-row :gutter="24">
           <a-col :span="24">
             <a-form-item label="备注">
-              <span class="white">符合国际GB/T1196-2008AL99.70规定,其中铝含量不低于99.7%</span>
+              <span class="white">{{ formatValue(selectedRow.remark) }}</span>
             </a-form-item>
           </a-col>
         </a-row>
@@ -216,13 +216,26 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, ref } from 'vue';
+import {defineComponent, PropType, ref} from 'vue';
 import { closeModal } from '@/common/setup/modal/index';
-import {getBizTypeName, getContractTypeName} from "@/views/information/spot-contract/setup";
+import {
+    getBizTypeName,
+    getContractStatusName,
+    getContractTypeName,
+    getPriceTypeName
+} from "@/views/information/spot-contract/setup";
+import {Ermcp3ContractRsp} from "@/services/go/ermcp/spot-contract/interface";
+import {formatTime, formatValue} from "@/common/methods";
 
 export default defineComponent({
     name: 'spot-contract-detail',
     components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<Ermcp3ContractRsp>,
+            default: {},
+        },
+    },
     setup() {
         const { visible, cancel } = closeModal('spot_contract_btn_check');
         const loading = ref<boolean>(false);
@@ -242,6 +255,10 @@ export default defineComponent({
             maskClosableFlag,
             getContractTypeName,
             getBizTypeName,
+            formatValue,
+            getContractStatusName,
+            formatTime,
+            getPriceTypeName,
         };
     },
 });

+ 3 - 3
src/views/information/spot-contract/components/delete/index.vue

@@ -188,7 +188,7 @@ import {
     getPriceTypeName
 } from "@/views/information/spot-contract/setup";
 import {message, Modal} from "ant-design-vue";
-import {deleteOrderContract} from "@/views/information/spot-contract/components/setup";
+import {OrderContractControl} from "@/views/information/spot-contract/components/setup";
 
 export default defineComponent({
     name: 'delete-spot-contract',
@@ -201,7 +201,7 @@ export default defineComponent({
     },
     setup(props, context) {
         const { visible, cancel } = closeModal('spot_contract_btn_delete');
-        const {loading, orderContractState} = deleteOrderContract()
+        const {loading, orderContractState} = OrderContractControl()
         const maskClosableFlag = ref<boolean>(false);
         function submit() {
             loading.value = true;
@@ -211,7 +211,7 @@ export default defineComponent({
                 cancelText: '取消',
                 onOk() {
                     // 删除客户资料
-                    orderContractState(props.selectedRow.spotcontractid)
+                    orderContractState(props.selectedRow.spotcontractid, 1)
                         .then(res => {
                             message.success(res);
                             // 通知上层  刷新数据

+ 1 - 0
src/views/information/spot-contract/components/detail/index.vue

@@ -186,6 +186,7 @@ import {
     getPriceTypeName
 } from '@/views/information/spot-contract/setup';
 import { formatValue, formatTime } from '@/common/methods/format';
+import {v4 as uuidv4} from "uuid";
 
 export default defineComponent({
     name: 'spot-contract-detail',

+ 4 - 4
src/views/information/spot-contract/components/finish/index.vue

@@ -187,7 +187,7 @@ import {
     getPriceTypeName
 } from "@/views/information/spot-contract/setup";
 import {Ermcp3ContractRsp} from "@/services/go/ermcp/spot-contract/interface";
-import {deleteOrderContract} from "@/views/information/spot-contract/components/setup";
+import { OrderContractControl} from "@/views/information/spot-contract/components/setup";
 import {message, Modal} from "ant-design-vue";
 
 export default defineComponent({
@@ -201,7 +201,7 @@ export default defineComponent({
     },
     setup(props, context) {
         const { visible, cancel } = closeModal('spot_contract_btn_finish');
-        const {loading, orderContractState} = deleteOrderContract()
+        const {loading, orderContractState} = OrderContractControl()
         const maskClosableFlag = ref<boolean>(false);
         function submit() {
             loading.value = true;
@@ -210,8 +210,8 @@ export default defineComponent({
                 okText: '确认完结',
                 cancelText: '取消',
                 onOk() {
-                    // 删除客户资料
-                    orderContractState(props.selectedRow.spotcontractid)
+                    // 完结合同
+                    orderContractState(props.selectedRow.spotcontractid, 6)
                         .then(res => {
                             message.success(res);
                             // 通知上层  刷新数据

+ 92 - 12
src/views/information/spot-contract/components/setup.ts

@@ -1,32 +1,112 @@
-import {GldErmcpSpotContractOperateReq} from "@/services/proto/spotcontract/interface";
-import {orderContract} from "@/services/proto/spotcontract";
+import {
+    GldErmcpSpotContractOperateReq,
+    GldSpotContractInfo,
+    SpotContractOperateReq
+} from "@/services/proto/spotcontract/interface";
+import {orderContract, spotContractStatus} from "@/services/proto/spotcontract";
 import {ref} from "vue";
 import {getSelectedAccountId} from "@/services/bus/account";
+import * as Long from "long";
+
+/**
+ * 合同操作相关
+ */
+export function changeOrderContract() {
+    const loading = ref<boolean>(false);
+
+    /**
+     * 合同操作
+     * @param id 合同id
+     * @param type 操作类型 1: 保存草稿  2: 提交申请 3: 删除成功 4:审核通过
+     * @param info 合同信息
+     */
+    function orderContractState(id: string, type: number, info?: GldSpotContractInfo): Promise<string> {
+        const reqs: GldErmcpSpotContractOperateReq = {
+            SpotContractID: Number(id),
+            OperateType: type,
+            Remark: '',
+            Info: info,
+        }
+        let successText = "成功"
+        let errorText = "失败"
+
+        switch (type){
+            case 1:
+                successText = "保存草稿成功"
+                errorText = "保存草稿失败:"
+                break;
+            case 2:
+                successText = "提交申请成功"
+                errorText = "提交申请失败:"
+                break;
+            case 3:
+                successText = "删除成功"
+                errorText = "删除失败:"
+                break;
+            case 4:
+                successText = "审核通过"
+                errorText = "审核失败:"
+                break;
+        }
+
+        return orderContract(reqs)
+            .then(res => {
+                return Promise.resolve(successText)
+            })
+            .catch(err => {
+                return Promise.reject(errorText + err)
+            }).finally(() => {
+                loading.value = false
+            })
+    }
+
+    return {loading, orderContractState}
+}
 
 
 /**
- * 删除未提交合同 // uint32 操作类型-1:保存草稿2:提交申请3:审核通过4:审核拒绝5:撤回6:正常完结7:异常终止
+ * 修改合同类型
+ * 4:审核拒绝 6:正常完结 5:撤销
  */
-export function deleteOrderContract(){
+export function OrderContractControl() {
     const loading = ref<boolean>(false);
 
-    function orderContractState(id: string): Promise<string>{
-        const reqs : GldErmcpSpotContractOperateReq = {
+    function orderContractState(id: string, type: number): Promise<string> {
+        const reqs: SpotContractOperateReq = {
             SpotContractID: Number(id),
-            OperateType: 6,
+            OperateType: type,
             Remark: '',
         }
-       return orderContract(reqs)
+        let successText = "成功"
+        let errorText = "失败"
+
+        switch (type) {
+            case 4:
+                successText = "审核拒绝成功"
+                errorText = "审核拒绝失败:"
+                break;
+            case 5:
+                successText = "撤销成功"
+                errorText = "撤销失败:"
+                break;
+            case 6:
+                successText = "正常完结"
+                errorText = "合同完结失败:"
+                break;
+        }
+
+        return spotContractStatus(reqs)
             .then(res => {
-                return Promise.reject("删除成功")
+                return Promise.resolve(successText)
             })
             .catch(err => {
-                return Promise.resolve("删除失败:" + err)
+                return Promise.reject(errorText + err)
             }).finally(() => {
-               loading.value = false
-           })
+                loading.value = false
+            })
     }
 
     return {loading, orderContractState}
 }
 
+

+ 6 - 1
src/views/information/spot-contract/setup.ts

@@ -80,4 +80,9 @@ export function getContractTypeName(type: number): string{
             break;
     }
     return result
-}
+}
+
+
+/************** 接口相关提示 **************** /
+ *
+ */