From 7eca0ab1b6d5142d623efd471985b2a20b559616 Mon Sep 17 00:00:00 2001
From: 小飞侠 <8277136+liaoxujun@user.noreply.gitee.com>
Date: 星期一, 01 十二月 2025 10:55:02 +0800
Subject: [PATCH] 修正审批备注长度

---
 cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs   |    2 
 AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue |  419 +++++++++++++++++++++-------------
 AdminwebPages/adminpageView/src/Api/apis.ts                  |  192 +++++++++------
 cylsg/cylsg.Web.Entry/appsettings.json                       |    8 
 cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs |   14 
 cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs              |    2 
 cylsg/cylsg.Application/Transfer/UserTransfer.cs             |   53 ++-
 7 files changed, 421 insertions(+), 269 deletions(-)

diff --git a/AdminwebPages/adminpageView/src/Api/apis.ts b/AdminwebPages/adminpageView/src/Api/apis.ts
index e1fac99..7a46f07 100644
--- a/AdminwebPages/adminpageView/src/Api/apis.ts
+++ b/AdminwebPages/adminpageView/src/Api/apis.ts
@@ -1,220 +1,264 @@
+import type { EzResult } from './EzApiBaseTypes'
+import axios from 'axios'
 
-import type { EzResult } from "./EzApiBaseTypes";
-import axios from "axios";
-
-  /** 鑾峰彇DFlFunInfo鍒楄〃 */
-  export const GetTransferOrder=(data:Request) => {
-
-
-    return axios.post<EzResult<RetPageDataWeChatTransferOrder>>("https://yocaisim.51zhengcai.com/api/UserTransfer/GetTransferOrder", data);
-  };
+const PYTestr = 'https://yocaisim.51zhengcai.com' //'http://localhost:5000'
+// const PYTestr = 'http://localhost:5000'
+/** 鑾峰彇DFlFunInfo鍒楄〃 */
+export const GetTransferOrder = (data: SearchRequest) => {
+  return axios.post<EzResult<RetPageDataWeChatTransferOrder>>(
+    `${PYTestr}/api/UserTransfer/GetTransferOrder`,
+    data,
+  )
+}
+//http://127.0.0.1:4523/m1/5212733-4879059-default/api/UserTransfer/GetTransferOder
+export const GetTransferOderOfMain = (data: SearchRequestOfMian) => {
+  return axios.post<EzResult<RetPageDataWeChatTransferOrder>>(
+    `${PYTestr}/api/UserTransfer/GetTransferOder`,
+    data,
+  )
+}
+///api/UserTransfer/ReSendCreadTransferMoney 閲嶆柊鏀粯
+export const ReSendCreadTransferMoney = (id: number) => {
+  return axios.get<EzResult<boolean>>(
+    `${PYTestr}/api/UserTransfer/ReSendCreadTransferMoney?id=${id}`,
+  )
+}
 
 /**
  * SSPageByWhereOrder锛屾牴鎹畐here鏌ヨ鏉′欢鍜宱rder鎺掑簭鑾峰彇鍒楄〃
  */
-export interface Request {
-  order?: SSOrder;
-  page?: PageModel;
+export interface SearchRequest {
+  order?: SSOrder
+  page?: PageModel
   /**
    * 鍒ゆ柇鏉′欢 蹇呴』鏄痡son鏍煎紡鐨勫瓧绗︿覆{xxx:ddd}
    */
-  where?: object | string;
+  where?: object | string
 }
-
 /**
-* SSOrder锛屾帓搴忔柟寮�
-*/
+ * SearchTransferOder
+ */
+export interface SearchRequestOfMian {
+  /**
+   * 鎼滅储鐘舵�佸��  妯$硦鏌ヨ
+   */
+  batchStatus?: null | string
+  /**
+   * 鏄惁宸茬粡鎴愬姛鍙戣捣浜�
+   */
+  hasSendOk?: boolean
+  /**
+   * 鏄惁鐗规畩澶勭悊姣斿鏀粯澶辫触鍚庡凡缁忓鐞嗕负鍏朵粬鎯呭喌
+   */
+  isSetOK?: boolean | null
+  /**
+   * 鎺掗櫎鎼滅储鍊肩姸鎬� 瑕佹帓闄ょ殑鐘舵�佸�煎繀椤绘槸鍏ㄧО锛屽涓箣闂寸敤 鈥渱鈥濋棿闅�
+   */
+  noTBatchStatus?: null | string
+  /**
+   * 褰撳墠椤电爜
+   */
+  pageIndex?: number
+  /**
+   * 椤甸潰澶у皬
+   */
+  pageSize?: number
+}
+/**
+ * SSOrder锛屾帓搴忔柟寮�
+ */
 export interface SSOrder {
-  des?: OrderByType;
+  des?: OrderByType
   /**
    * 灞炴�у悕绉�
    */
-  name?: null | string;
+  name?: null | string
 }
 
 /**
-* OrderByType
-*/
+ * OrderByType
+ */
 export enum OrderByType {
-  Asc = "Asc",
-  Desc = "Desc",
+  Asc = 'Asc',
+  Desc = 'Desc',
 }
 
 /**
-* PageModel
-*/
+ * PageModel
+ */
 export interface PageModel {
-  pageIndex?: number;
-  pageSize?: number;
-  totalCount?: number;
+  pageIndex?: number
+  pageSize?: number
+  totalCount?: number
 }
 
-
 /**
-* RetPageData_WeChatTransferOrder锛岄�氱敤杩斿洖鍙傛暟
-*/
+ * RetPageData_WeChatTransferOrder锛岄�氱敤杩斿洖鍙傛暟
+ */
 export interface RetPageDataWeChatTransferOrder {
   /**
    * 鏁版嵁
    */
-  data?: WeChatTransferOrder[] | null;
-  page?: PageModel;
+  data?: WeChatTransferOrder[] | null
+  listdata?: WeChatTransferOrder | null
+  page?: PageModel
 }
 
 /**
-* WeChatTransferOrder锛岃浆璐﹀崟璐︽ā鍨�
-*/
+ * WeChatTransferOrder锛岃浆璐﹀崟璐︽ā鍨�
+ */
 export interface WeChatTransferOrder {
   /**
    * 閲嶆柊鏀粯璁㈠崟鍒楄〃
    */
-  agWeChatTransferOrders?: WeChatTransferOrder[] | null;
+  agWeChatTransferOrders?: WeChatTransferOrder[] | null
   /**
    * 鑾峰彇鎴栬缃井淇℃壒娆″崟鍙枫��
    */
-  batchId?: null | string;
+  batchId?: null | string
   /**
    * 鑾峰彇鎴栬缃壒娆$殑鍚嶇О銆�
    * 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�"
    */
-  batchName?: null | string;
+  batchName?: null | string
   /**
    * 鑾峰彇鎴栬缃壒娆$殑澶囨敞銆�
    * 绀轰緥: "2019骞�1鏈堟繁鍦冲垎閮ㄦ姤閿�鍗�"
    */
-  batchRemark?: null | string;
+  batchRemark?: null | string
   /**
    * 鑾峰彇鎴栬缃壒娆$姸鎬併��
    */
-  batchStatus?: null | string;
+  batchStatus?: null | string
   /**
    * 鑾峰彇鎴栬缃叧闂壒娆$殑鍘熷洜銆�
    * 绀轰緥: "OVERDUE_CLOSE"
    */
-  closeReason?: null | string;
+  closeReason?: null | string
   /**
    * 鍒涘缓浜�
    */
-  createBy?: null | string;
+  createBy?: null | string
   /**
    * 鍒涘缓鏃堕棿
    */
-  createTime?: Date | null;
+  createTime?: string | null
   /**
    * 閿欒鏍囪瘑
    */
-  errorCode?: null | string;
+  errorCode?: null | string
 
   /**
    * 閿欒娑堟伅
    */
-  errorMsg?: null | string;
+  errorMsg?: null | string
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ユ�婚噾棰濄��
    * 绀轰緥: 100000
    */
-  failAmount?: number | null;
+  failAmount?: number | null
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勫け璐ラ」鐩暟銆�
    * 绀轰緥: 1
    */
-  failNum?: number | null;
+  failNum?: number | null
   /**
    * ID
    */
-  id?: number;
+  id?: number
   /**
    * 鏄惁鍒犻櫎
    */
-  isDeleted?: boolean;
+  isDeleted?: boolean
   /**
    * 鏄惁鏈夋晥
    */
-  isEn?: boolean;
+  isEn?: boolean
   /**
    * 鏄惁宸茬粡瀹屾垚澶勭悊  榛樿鏈鐞�
    */
-  isSetOK?: boolean;
+  isSetOK?: boolean | null
   /**
    * 鑾峰彇鎴栬缃晢鎴锋壒娆″崟鍙枫��
    */
-  outBatchNumber?: null | string;
+  outBatchNumber?: null | string
   /**
    * 鏍囨敞
    */
-  remake?: null | string;
+  remake?: null | string
   /**
    * 鍐嶆鍙戣捣鏃� 鐨勬弿杩�
    */
-  remakeDes?: null | string;
+  remakeDes?: null | string
   /**
    * 鎺掑簭
    */
-  sort?: number | null;
+  sort?: number | null
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熸�婚噾棰濄��
    * 绀轰緥: 3900000
    */
-  successAmount?: number | null;
+  successAmount?: number | null
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勬垚鍔熼」鐩暟銆�
    * 绀轰緥: 199
    */
-  successNum?: number | null;
+  successNum?: number | null
   /**
    * 绉熸埛
    */
-  tenantID?: number | null;
+  tenantID?: number | null
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勬�婚噾棰濄��
    * 绀轰緥: 4000000
    */
-  totalAmount?: number | null;
+  totalAmount?: number | null
   /**
    * 鑾峰彇鎴栬缃壒娆′腑鐨勯」鐩�绘暟銆�
    * 绀轰緥: 200
    */
-  totalNum?: number | null;
+  totalNum?: number | null
 
   /**
    * 鑾峰彇鎴栬缃浆璐﹀満鏅爣璇嗙銆�
    * 绀轰緥: "1000"
    */
-  transferSceneId?: null | string;
+  transferSceneId?: null | string
   /**
    * 淇敼浜�
    */
-  upDataBy?: null | string;
+  upDataBy?: null | string
   /**鏃堕棿绛涢�夋暟缁� */
-  DataTime?:Date[]|string;
+  DataTime?: Date[] | string
+  createDataTime?: Date[] | string
   /**
    * 淇敼鏃堕棿
    */
-  upDataTime?: string | null;
+  upDataTime?: string | null
 
   /**
    * 鐢ㄦ埛ID銆�
    */
-  userID?: number;
+  userID?: number
   /**
    * 鐢ㄦ埛韬唤璇�
    */
-  userIDCode?: null | string;
+  userIDCode?: null | string
   /**
    * 鍚嶅瓧
    */
-  userName?: null | string;
+  userName?: null | string
   /**
    * 鏄惁閲嶆柊鍙戣捣鏀粯锛屽綋鏀粯澶辫触鍚庯紝瓒呭嚭閲嶆柊鐨勬敮浠樺崟澶辫触鍚庯紝闇�瑕侀噸鏂版洿鎹㈠崟鍙烽噸鏂板彂璧锋柊鐨勬敮浠樿姹傦紝閲嶆柊鍙戣捣鏀粯璇锋眰鍗�
    */
-  weChatTransferOrderPrId?: number | null;
+  weChatTransferOrderPrId?: number | null
 
-  YiTiXianGz?:number
+  YiTiXianGz?: number
 
-   ZhongGz?:number
-   itCode?:string|null
+  ZhongGz?: number
+  itCode?: string | null
+  /**
+   * 鏄惁宸茬粡鍙戦�佹垚鍔�
+   */
+  hasSendOk?: boolean | null
 }
-
-
-
-
diff --git a/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue b/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue
index 081f7a0..df466bb 100644
--- a/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue
+++ b/AdminwebPages/adminpageView/src/views/cylsgPayrollReport.vue
@@ -3,7 +3,7 @@
  * @Author: 灏忛渚�
  * @Date: 2025-03-17 09:45:10
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2025-03-27 13:24:58
+ * @LastEditTime: 2025-10-24 17:12:56
  * Copyright: 2025  MinTinge CO.,LTD. All Rights Reserved.
  * @Descripttion: 鍐欏叆浣犵殑鎻忚堪
 -->
@@ -18,64 +18,74 @@
 -->
 <!-- -->
 <template>
-  <div style="max-width: 1440px; margin: 0 auto">
-
+  <div style=" margin: 0 auto">
     <el-card>
       <PlusForm v-model="formdata" :columns="FromColumns" :row-props="{ gutter: 100 }" :col-props="{
-        span: 5
+        span: 5,
       }" @submit="mysubmit">
         <template #footer="{ handleSubmit }">
           <div style="margin: 0 auto">
             <el-button type="primary" @click="handleSubmit">鎼滅储</el-button>
+
+            <el-button type="error" @click="RePayFun" :disabled="!canRePay">閲嶆柊鏀粯</el-button>
           </div>
         </template>
       </PlusForm>
     </el-card>
     <PlusTable ref="plusTableInstance" :columns="tableConfig" :table-data="tableData" table-title="琛ㄦ牸" show-summary
-      :summary-method="getSummaries" :pagination="{ total, modelValue: pageInfo }"
-      @paginationChange="handlePaginationChange" adaptive />
+      :summary-method="getSummaries"
+      :pagination="{ total, modelValue: pageInfo, pageSizeList: [30, 40, 50, 100, 200, 300, 400, 500] }"
+      @paginationChange="handlePaginationChange" adaptive :is-selection="true" has-index-column
+      @selection-change="handleSelectionChange" row-key="id" />
+
   </div>
 </template>
-<script setup lang='tsx'>
-import { GetTransferOrder, OrderByType, type WeChatTransferOrder } from '@/Api/apis';
-import moment from 'moment';
-import type { PlusColumn, PlusTableInstance, PageInfo } from 'plus-pro-components'
+<script setup lang="tsx">
+import {
+  GetTransferOderOfMain,
+  GetTransferOrder,
+  OrderByType,
+  ReSendCreadTransferMoney,
+  type WeChatTransferOrder,
+} from '@/Api/apis'
+import { ElMessage } from 'element-plus'
+import moment from 'moment'
+import type { PageInfo, PlusColumn } from 'plus-pro-components'
 import { useTable } from 'plus-pro-components'
-import { h, onMounted, ref, type VNode } from 'vue'
+import { computed, h, onMounted, ref, watch, type VNode } from 'vue'
 const formdata = ref<WeChatTransferOrder>({
   userName: null,
   userIDCode: null,
   DataTime: [],
-  itCode: null
-
+  itCode: null,
+  isSetOK: null,
+  hasSendOk: null,
+  createDataTime: [],
 })
-
+const multipleSelection = ref<WeChatTransferOrder[]>([])
 const FromColumns: PlusColumn[] = [
   {
     label: '濮撳悕',
     prop: 'userName',
     labelWidth: 60,
-
   },
   {
     label: '韬唤璇佸彿鐮�',
     labelWidth: 100,
 
-    prop: 'userIDCode'
-  }
-  ,
+    prop: 'userIDCode',
+  },
   {
     label: '鐢佃瘽鍙风爜',
     labelWidth: 100,
-
-    prop: 'itCode'
+    prop: 'itCode',
   },
   {
-    label: '鏀粯鏃堕棿',
+    label: '鏇存柊鏃堕棿',
     labelWidth: 100,
     width: 400,
     colProps: {
-      span: 8
+      span: 8,
     },
     prop: 'DataTime',
     valueType: 'date-picker',
@@ -85,195 +95,279 @@
       endPlaceholder: '璇烽�夋嫨缁撴潫鏃堕棿',
       rangeSeparator: '-',
       valueFormat: 'YYYY-MM-DDTHH:mm:ss',
-
     },
-
-
-
-  }
+  },
+  {
+    label: '鍒涘缓鏃堕棿',
+    labelWidth: 100,
+    width: 400,
+    colProps: {
+      span: 8,
+    },
+    prop: 'createDataTime',
+    valueType: 'date-picker',
+    fieldProps: {
+      type: 'datetimerange',
+      startPlaceholder: '璇烽�夋嫨寮�濮嬫椂闂�',
+      endPlaceholder: '璇烽�夋嫨缁撴潫鏃堕棿',
+      rangeSeparator: '-',
+      valueFormat: 'YYYY-MM-DDTHH:mm:ss',
+    },
+  },
+  {
+    label: '鏀粯澶辫触',
+    labelWidth: 100,
+    prop: 'hasSendOk',
+    valueType: 'switch',
+  },
 ]
 
-const tableConfig = ref<PlusColumn[]>(
-  [
-    {
-      label: '濮撳悕',
-      prop: 'userName',
-      width: 80
+const canRePay = computed(() => {
+  // 蹇呴』鏈夐�変腑椤癸紝涓旀墍鏈夐�変腑椤圭殑hasSendOk閮戒负true锛堟敮浠樺け璐ワ級
+  return multipleSelection.value.length > 0 &&
+    formdata.value.hasSendOk == true
+})
+const tableConfig = ref<PlusColumn[]>([
+  {
+    label: '濮撳悕',
+    prop: 'userName',
+    width: 70,
+  },
+  {
+    label: '韬唤璇�',
+    prop: 'userIDCode',
+    width: 162,
+  },
+  {
+    label: '鐢佃瘽鍙风爜',
+    prop: 'itCode',
+    width: 110,
+  },
+
+  {
+    width: 100,
+    label: '鎬婚搴�',
+    prop: 'totalAmount',
+    render: (value) => {
+      let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', {
+        style: 'currency',
+        currency: 'CNY',
+      })
+
+      return <span>{formattedAmount}鍏� </span>
     },
-    {
-      label: '韬唤璇�',
-      prop: 'userIDCode',
-      width: 170
+  },
 
+  {
+    width: 100,
+    label: '鎴愬姛棰濆害',
+    prop: 'successAmount',
+    sortable: true,
+    render: (value) => {
+      let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', {
+        style: 'currency',
+        currency: 'CNY',
+      })
 
+      return <span>{formattedAmount}鍏� </span>
     },
-    {
-      label: '鐢佃瘽鍙风爜',
-      prop: 'itCode',
-      width: 120
+  },
+  {
+    width: 100,
+    label: '澶辫触棰濆害',
+    prop: 'failAmount',
+    sortable: true,
+    render: (value) => {
+      let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', {
+        style: 'currency',
+        currency: 'CNY',
+      })
+
+      return <span>{formattedAmount}鍏� </span>
     },
+  },
 
-
-    {
-      width: 100,
-      label: '鎬婚搴�',
-      prop: 'totalAmount',
-      render: (value) => {
-
-        let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
-
-        return <span>{formattedAmount}鍏�</span>
-      }
-
-
+  {
+    width: 160,
+    label: '鏇存柊鏃堕棿',
+    prop: 'upDataTime',
+    render: (value) => {
+      return <span>{moment(value).format('YYYY-MM-DD HH:mm:ss')} </span>
     },
-
-    {
-      width: 100,
-      label: '鎴愬姛棰濆害',
-      prop: 'successAmount',
-      sortable: true,
-      render: (value) => {
-
-        let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
-
-        return <span>{formattedAmount}鍏�</span>
-      }
-
+  },
+  {
+    width: 160,
+    label: '鍒涘缓鏃堕棿',
+    prop: 'createTime',
+    render: (value) => {
+      return <span>{moment(value).format('YYYY-MM-DD HH:mm:ss')} </span>
     },
-    {
-      width: 100,
-      label: '澶辫触棰濆害',
-      prop: 'failAmount',
-      sortable: true,
-      render: (value) => {
+  },
 
-        let formattedAmount = ((value ?? 0) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
-
-        return <span>{formattedAmount}鍏�</span>
-      }
-
+  {
+    width: 80,
+    label: '琛ュ彂鍗�',
+    prop: 'weChatTransferOrderPrId',
+    render: (value) => {
+      const color = value > 0 ? 'red' : 'green';
+      return <span style={{ color }}>{value ? `鏄�${value}` : '鍚�'} </span>
     },
+  },
+  {
+    label: '鑵捐鍗曞彿',
+    prop: 'batchId',
+  },
+  {
+    label: '瀹㈡埛鍗曞彿',
+    prop: 'outBatchNumber',
+  },
+  {
+    width: 160,
+    label: '鎬诲伐璧�',
+    prop: 'zhongGz',
+    render: (value) => {
+      let formattedAmount = (value ?? 0).toLocaleString('zh-CN', {
+        style: 'currency',
+        currency: 'CNY',
+      })
 
-    {
-      width: 180,
-      label: '鎻愮幇鏃堕棿',
-      prop: 'upDataTime',
-      render: (value) => {
-        return <span>{moment(value).format('YYYY-MM-DD HH:mm:ss')}</span>
-      }
-
+      return <span>{formattedAmount}鍏� </span>
     },
-    {
+  },
+  {
+    width: 160,
+    label: '宸叉彁宸ヨ祫',
+    prop: 'yiTiXianGz',
+    render: (value) => {
+      let formattedAmount = (value ?? 0).toLocaleString('zh-CN', {
+        style: 'currency',
+        currency: 'CNY',
+      })
 
-      label: '鑵捐鍗曞彿',
-      prop: 'batchId'
-
+      return <span>{formattedAmount}鍏� </span>
     },
-    {
-
-      label: '瀹㈡埛鍗曞彿',
-      prop: 'outBatchNumber'
-
-    },
-    {
-      width: 100,
-      label: '鎬诲伐璧�',
-      prop: 'zhongGz',
-      render: (value) => {
-
-        let formattedAmount = ((value ?? 0)).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
-
-        return <span>{formattedAmount}鍏�</span>
-      }
-
-    },
-    {
-      width: 100,
-      label: '宸叉彁宸ヨ祫',
-      prop: 'yiTiXianGz',
-      render: (value) => {
-        let formattedAmount = ((value ?? 0)).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
-
-        return <span>{formattedAmount}鍏�</span>
-      }
-
-    }
-
-  ]
-);
-
+  },
+])
+const handleSelectionChange = (val: WeChatTransferOrder[]) => {
+  multipleSelection.value = val
+}
 const { tableData, pageInfo, total, loadingStatus } = useTable<WeChatTransferOrder[]>()
+pageInfo.value.page = 1;
+pageInfo.value.pageSize = 40;
 
 onMounted(() => {
-  getList();
+  getList()
 })
 const getList = async () => {
   loadingStatus.value = true
-  if (formdata.value.DataTime && Array.isArray(formdata.value.DataTime) && formdata.value.DataTime.length === 2) {
-    debugger
-    formdata.value.upDataTime = `${formdata.value.DataTime[0]}~${formdata.value.DataTime[1].toString()}`;
-  } else {
 
+  if (
+    formdata.value.DataTime &&
+    Array.isArray(formdata.value.DataTime) &&
+    formdata.value.DataTime.length === 2
+  ) {
+    formdata.value.upDataTime = `${formdata.value.DataTime[0]}~${formdata.value.DataTime[1].toString()}`
+  } else {
+  }
+  if (
+    formdata.value.createDataTime &&
+    Array.isArray(formdata.value.createDataTime) &&
+    formdata.value.createDataTime.length === 2
+  ) {
+    formdata.value.createTime = `${formdata.value.createDataTime[0]}~${formdata.value.createDataTime[1].toString()}`
+  } else {
+  }
+  if (formdata.value.hasSendOk == true) {
+    // 鏀粯澶辫触鐨勮〃
+    GetTransferOderOfMain({
+
+      pageIndex: pageInfo.value.page,
+      pageSize: pageInfo.value.pageSize,
+      hasSendOk: false,
+      isSetOK: false
+    })
+      .then((res) => {
+        if (res.data.code == 1) {
+          tableData.value = (res.data?.data?.listdata ?? []) as WeChatTransferOrder[]
+
+          total.value = res.data.data?.page?.totalCount as number
+        }
+      })
+      .finally(() => {
+        loadingStatus.value = false
+      })
+    return
   }
   GetTransferOrder({
     page: { pageIndex: pageInfo.value.page, pageSize: pageInfo.value.pageSize },
-     where: JSON.stringify(formdata.value),
-     order:{
-       name:"upDataTime",
-       des:OrderByType.Desc
-     }
-
-  }).then((res) => {
-
-    if (res.data.code == 1) {
-      tableData.value = res.data.data?.data as WeChatTransferOrder[];
-
-      total.value = res.data.data?.page?.totalCount as number;
-    }
-  }).finally(() => {
-    loadingStatus.value = false
+    where: JSON.stringify(formdata.value),
+    order: {
+      name: 'upDataTime',
+      des: OrderByType.Desc,
+    },
   })
+    .then((res) => {
+      if (res.data.code == 1) {
+        tableData.value = res.data.data?.data as WeChatTransferOrder[]
 
+        total.value = res.data.data?.page?.totalCount as number
+      }
+    })
+    .finally(() => {
+      loadingStatus.value = false
+    })
+}
+const RePayFun = async () => {
+  if (multipleSelection.value.length == 0) {
+    ElMessage.error('璇烽�夋嫨瑕侀噸鏂版敮浠樼殑璁板綍')
+    return
+  }
+  let ids = multipleSelection.value.map((x) => x.id)
+  for (let index = 0; index < ids.length; index++) {
+    const element = ids[index]
+    await ReSendCreadTransferMoney(element as number)
+  }
+  ElMessage.success('鏀粯瀹屾瘯鍒锋柊鍒楄〃')
+  loadingStatus.value = false
 }
 
-
 const mysubmit = () => {
-  getList();
+  getList()
 }
 const getSummaries = (param: any) => {
   const { columns, data } = param
   const sums: (string | VNode)[] = []
-  columns.forEach((column: { property: string | number; }, index: number) => {
+  columns.forEach((column: { property: string | number }, index: number) => {
     if (index === 0) {
-      sums[index] = h('div', { style: { textDecoration: 'underline' } }, [
-        '缁熻',
-      ])
+      sums[index] = h('div', { style: { textDecoration: 'underline' } }, ['缁熻'])
       return
     }
-    if (column.property == "totalAmount") {
-      const values = data.map((x:any) => x.totalAmount);
-      let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
+    if (column.property == 'totalAmount') {
+      const values = data.map((x: any) => x.totalAmount ?? 0)
+      let formattedAmount = (
+        values.reduce((prev: any, cur: any) => prev + cur) / 100
+      ).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
       sums[index] = formattedAmount
       return
     }
 
-
-    if (column.property == "successAmount") {
-      const values = data.map((x: { successAmount: any; }) => x.successAmount);
-      let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
+    if (column.property == 'successAmount') {
+      const values = data.map((x: { successAmount: any }) => x.successAmount ?? 0)
+      let formattedAmount = (
+        values.reduce((prev: any, cur: any) => prev + cur) / 100
+      ).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
       sums[index] = formattedAmount
       return
     }
-    if (column.property == "failAmount") {
-      const values = data.map((x: { failAmount: any; }) => x.failAmount);
-      let formattedAmount = (values.reduce((prev: any, cur: any) => prev + cur) / 100).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' });
+    if (column.property == 'failAmount') {
+      const values = data.map((x: { failAmount: any }) => x.failAmount ?? 0)
+      let formattedAmount = (
+        values.reduce((prev: any, cur: any) => prev + cur) / 100
+      ).toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
       sums[index] = formattedAmount
       return
     }
   })
-
-
 
   return sums
 }
@@ -281,6 +375,5 @@
   pageInfo.value = _pageInfo
   getList()
 }
-
 </script>
-<style lang='scss' scoped></style>
\ No newline at end of file
+<style lang="scss" scoped></style>
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
index f7de6f2..73b41d9 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
@@ -173,7 +173,7 @@
                             AccountId = FirmAccount.Keyid,
                             Money = data.PlanMoney ?? 0,
                             LastUpdateTime = DateTime.Now,
-                            Department = data.PlanContent,
+                            Department = data?.Depart?.Name??"",
                             RecordTypeId = 2,
                             SubjectId = 3,//鎶ラ攢蹇呴』涓�3
                             Operator = Permissions.Name,
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
index 33c4b21..103387b 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
@@ -68,8 +68,9 @@
             SearchList = SearchList.And(x => x.MemberId == _OAServices.firmId);
             SearchList = SearchList.And(x => x.PlanType == 3);
             SearchList = SearchList.And(x => x.PlanDataType == 17);
-            //SearchList = SearchList.And(x =>  x.ApprovalStatus == PlanStatusType.unApproval);
-            //SearchList = SearchList.And(x =>  x.OaWorkPlanShenpis.Where(y => y.Buzhou == 1 && y.ApprovalStaffId == Permissions.MemberId).Count()<=0);
+            SearchList = SearchList.And(x => x.OaWorkPlanShenpis.Count(y => y.Buzhou == 1&& y.ApprovalStaffId != Permissions.MemberId) < 2);//鍙渶瑕佷袱涓汉瀹℃壒 鍙﹀涓や釜浜哄鎵逛簡锛屼笉鍦ㄦ樉绀�
+            //SearchList = SearchList.And(x => x.ApprovalStatus == PlanStatusType.unApproval);
+            //SearchList = SearchList.And(x => x.OaWorkPlanShenpis.Where(y => y.Buzhou == 1 && y.ApprovalStaffId == Permissions.MemberId).Count() <= 0);
             //SearchList = SearchList.And(x => x.DepartId == Permissions.DepartId); 閮ㄩ棬绛涢��
             if (!string.IsNullOrEmpty(param.StaffName))
             {
@@ -116,7 +117,7 @@
             //寮哄埗澧炲姞鍛樺伐杩囨护
    
             var data = await _SugarClient.Queryable<OaWorkPlan>().Includes(x=>x.Depart)
-                    .Includes(x=>x.OaWorkPlanShenpis.Where(y=>y.ApprovalStaffId==Permissions.MemberId&&y.Buzhou==1).ToList())
+                    .Includes(x=>x.OaWorkPlanShenpis.Where(y=>y.Buzhou==1).ToList())
                     .Where(SearchList).OrderByDescending(x => x.PlanStartTime).Mapper(
                     x =>
                     {
@@ -196,6 +197,13 @@
             {
                 throw Oops.Oh("鎶ラ攢鍗曟湭鎻愪氦涓嶅彲瀹℃壒");
             }
+            int shenpiCount = data.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId != Permissions.MemberId && x.Buzhou == 1).Count();
+            if(shenpiCount >= 2)
+            {
+                //涓や釜浜哄鎵瑰悗銆備笉鍙啀瀹℃壒
+                throw Oops.Oh("宸茬粡宸茬粡缁撴潫");
+
+            }
             OaWorkPlanShenpi shenpi = data.OaWorkPlanShenpis.Where(x => x.ApprovalStaffId == Permissions.MemberId&&x.Buzhou==1).FirstOrDefault();
              if (shenpi!=null)
             {
diff --git a/cylsg/cylsg.Application/Transfer/UserTransfer.cs b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
index 60a5fad..a420c36 100644
--- a/cylsg/cylsg.Application/Transfer/UserTransfer.cs
+++ b/cylsg/cylsg.Application/Transfer/UserTransfer.cs
@@ -258,7 +258,7 @@
         /// </summary>
         [AllowAnonymous]
         [HttpPost]
-        [ApiExplorerSettings(IgnoreApi = true)]
+        [ApiExplorerSettings(IgnoreApi = true)]                                           
         public async Task<TransferOderOut> GetTransferOder(SearchTransferOder param)
         {
 
@@ -291,9 +291,14 @@
             else
                 //鏈変竴绗斿ぇ浣�0 鐨勮涓哄け璐�
                 SearchList= SearchList.And(x => x.FailNum ==0&&x.BatchStatus=="FINISHED");
-             var data=await WeChatTransferOrderwork.AsQueryable().Where(SearchList).Select(x=>new WeChatTransferOrder
+             var data=await WeChatTransferOrderwork.AsQueryable().Includes(x => x.user, u => u.Worek).Where(SearchList).Select(x=>new WeChatTransferOrder
              {
-               BatchRemark= SqlFunc.Subqueryable<UserWorker>().Where(uw=>uw.UserId==x.UserID).Select(uw => uw.name+ uw.IdCode)   
+                 UserName=x.user.Worek.name,
+                 UserIDCode = x.user.Worek.IdCode,
+                 ItCode = x.user.ItCode,
+                 YiTiXianGz = x.user.Worek.YiTiXianJine,
+                 ZhongGz = x.user.Worek.TiXianZonge,
+                 BatchRemark = SqlFunc.Subqueryable<UserWorker>().Where(uw=>uw.UserId==x.UserID).Select(uw => uw.name+ uw.IdCode)   
              },true).ToPageListAsync(pageModel.PageIndex, pageModel.PageSize,pageModel.TotalCount);
             //var data = await WeChatTransferOrderwork.GetPageListAsync(SearchList, pageModel);
               
@@ -913,32 +918,34 @@
             }
             RefAsync<int> title = 0;
             var BR = new BaseRepository<WeChatTransferOrder>();
-          var data=  await BR.AsQueryable().Includes(x=>x.user,u=>u.Worek).Select(x=>new WeChatTransferOrder
-          {
-               UserIDCode= x.user.Worek.IdCode,
-                UserName=x.user.Worek.name,
-                 TotalAmount=x.TotalAmount,
-               TotalNum=x.TotalNum,
-              BatchId=x.BatchId,
-               SuccessNum=x.SuccessNum,
-              OutBatchNumber=x.OutBatchNumber,
-              BatchName = x.BatchName,
-              BatchStatus=x.BatchStatus,
-              UserID= x.UserID,
-              UpDataTime=x.UpDataTime,
-              YiTiXianGz=x.user.Worek.YiTiXianJine,
-               ZhongGz=x.user.Worek.TiXianZonge,
-              ItCode=x.user.ItCode,
-              SuccessAmount= x.SuccessAmount,
-              FailAmount=x.FailAmount
-              
+            var data = await BR.AsQueryable().Includes(x => x.user, u => u.Worek).Select(x => new WeChatTransferOrder
+            {
+                Id = 0,
+                 UserIDCode = x.user.Worek.IdCode,
+                UserName = x.user.Worek.name,
+                TotalAmount = x.TotalAmount,
+                TotalNum = x.TotalNum,
+                BatchId = x.BatchId,
+                SuccessNum = x.SuccessNum,
+                OutBatchNumber = x.OutBatchNumber,
+                BatchName = x.BatchName,
+                BatchStatus = x.BatchStatus,
+                UserID = x.UserID,
+                UpDataTime = x.UpDataTime,
+                YiTiXianGz = x.user.Worek.YiTiXianJine,
+                ZhongGz = x.user.Worek.TiXianZonge,
+                ItCode = x.user.ItCode,
+                SuccessAmount = x.SuccessAmount,
+                FailAmount = x.FailAmount,
+                CreateTime = x.CreateTime
 
 
 
 
 
 
-          }).MergeTable().WhereIF(where != null, where).OrderByIF(order!=null,order,Param.Order?.Des?? OrderByType.Asc).ToPageListAsync(Param.Page.PageIndex,Param.Page.PageSize, title);
+
+            },true).MergeTable().WhereIF(where != null, where).OrderByIF(order!=null,order,Param.Order?.Des?? OrderByType.Asc).ToPageListAsync(Param.Page.PageIndex,Param.Page.PageSize, title);
 
          
 
diff --git a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
index 736fc4c..3b34604 100644
--- a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
+++ b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanShenpi.cs
@@ -74,7 +74,7 @@
             public string Operator { get; set; }
 
             /// <summary>
-            /// 瀹℃壒姝ラ
+            /// 瀹℃壒姝ラ 1 鏄富绠″鎵癸紝2鏄粡鐞嗗鎵�
             /// </summary>
             [SugarColumn(ColumnName = "Buzhou")]
             public int? Buzhou { get; set; }
diff --git a/cylsg/cylsg.Web.Entry/appsettings.json b/cylsg/cylsg.Web.Entry/appsettings.json
index fcf1993..4dcf9da 100644
--- a/cylsg/cylsg.Web.Entry/appsettings.json
+++ b/cylsg/cylsg.Web.Entry/appsettings.json
@@ -24,7 +24,7 @@
 
 
       // "ConnectionString": "Server=192.168.0.31;Database=CyLsgDb; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;integrated security=True;",
-      "ConnectionString": "Server=192.168.18.15;Database=CyLsgDb; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;User Id=SA;Password=123456;",
+      "ConnectionString": "Server=192.168.18.5;Database=CyLsgDb; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;User Id=SA;Password=123456;",
       "DbType": "SqlServer", // "SqlServer" ,mysql,
       "IsAutoCloseConnection": true
     }
@@ -36,7 +36,7 @@
       //"IsAutoCloseConnection": true
 
 
-      "ConnectionString": "Server=192.168.18.15;Database=ECTEST_NEW; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;User Id=SA;Password=123456;",
+      "ConnectionString": "Server=192.168.18.5;Database=ECTEST_NEW; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;User Id=SA;Password=123456;",
       // "ConnectionString": "Server=118.123.213.60;Database=ECTEST_NEW; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;User Id=SA;Password=123qwe!@#;",
       "DbType": "SqlServer", // "SqlServer" ,mysql,
       "IsAutoCloseConnection": true,
@@ -60,9 +60,9 @@
     "ValidateAudience": true, // 鏄惁楠岃瘉绛炬敹鏂癸紝bool 绫诲瀷锛岄粯璁rue
     "ValidAudience": "www.51zhengcai.com", // 绛炬敹鏂癸紝string 绫诲瀷
     "ValidateLifetime": true, // 鏄惁楠岃瘉杩囨湡鏃堕棿锛宐ool 绫诲瀷锛岄粯璁rue锛屽缓璁畉rue
-    "ExpiredTime": 14400, // 杩囨湡鏃堕棿锛宭ong 绫诲瀷锛屽崟浣嶅垎閽燂紝榛樿20鍒嗛挓
+    "ExpiredTime": 10, // 杩囨湡鏃堕棿锛宭ong 绫诲瀷锛屽崟浣嶅垎閽燂紝榛樿20鍒嗛挓
     "ClockSkew": 5, // 杩囨湡鏃堕棿瀹归敊鍊硷紝long 绫诲瀷锛屽崟浣嶇锛岄粯璁� 5绉�
     "Algorithm": "HS256", // 鍔犲瘑绠楁硶锛宻tring 绫诲瀷锛岄粯璁� HS256
-    "RefreshTokenExpires": 14400 //鍒嗛挓 1澶� 1440鍒嗛挓
+    "RefreshTokenExpires": 1 //鍒嗛挓 1澶� 1440鍒嗛挓
   }
 }
\ No newline at end of file

--
Gitblit v1.9.1