Jelajahi Sumber

数据录入分双页面模式

Liuqi 6 tahun lalu
induk
melakukan
e298eaa51c

+ 37 - 0
src/dashoo.cn/backend/api/business/limsdataentry/limsdataentryService.go

@@ -132,6 +132,43 @@ func (s *LimsDataEntryService) GetBalanceEntrySerch(tblbalance string, tblentry
 	return total, List
 }
 
+//按单号和委托方获取任务分配和数据录入信息
+func (s *LimsDataEntryService) GetBalanceEntrySerchGroup(tblbalance string, tblentry string, tblentrustmain string, pageIndex, itemsPerPage int64, order, where string) (int64, []LimsDateEntryModel) {
+	var err error
+	var total int64
+	if order != "" {
+		order = " order by " + order
+	}
+	//获取总记录数
+	if where == "" {
+		where = "1=1"
+	}
+	sqlCount := " SELECT COUNT(*) from ( SELECT EntrustNo,CustomerName from ( SELECT b.EntrustNo,c.CustomerName from " + tblentry + " a  left join " + tblbalance + " b on b.Id = a.TaskId left join " + tblentrustmain + " c on c.Id=b.EId where " + where + "  ) as Tcount1 Group by EntrustNo,CustomerName ) as Tcount2"
+	resultsSlice, err := s.DBE.Query(sqlCount)
+	LogError(err)
+	if len(resultsSlice) > 0 {
+		results := resultsSlice[0]
+		for _, value := range results {
+			total, err = strconv.ParseInt(string(value), 10, 64)
+			LogError(err)
+			break
+		}
+	}
+	if total!=0 && itemsPerPage == 0&&pageIndex ==0{
+		itemsPerPage = total
+		pageIndex =1
+	}
+	var sql string
+	sql = `select EntrustNo,CustomerName from  (select b.EntrustNo,c.CustomerName from ` + tblentry + ` a 
+	left join ` + tblbalance + ` b on b.Id = a.TaskId 
+	left join ` + tblentrustmain + ` c on c.Id=b.EId 
+	where ` + where  + " ) as Tgroup Group by EntrustNo,CustomerName "+  order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage) + " "
+	fmt.Println(sql)
+	List := make([]LimsDateEntryModel, 0)
+	utils.DBE.Sql(sql).Find(&List)
+	return total, List
+}
+
 //获取历史版本列表
 func (s *LimsDataEntryService) GetEntitiesSerch(tblhistory string, tbldataentry string, order, where string) []HistoryModel {
 	if order != "" {

+ 134 - 0
src/dashoo.cn/backend/api/controllers/lims/limsdataentry.go

@@ -299,14 +299,30 @@ func (this *LimsDataEntryController) GetToDoList() {
 	orderby := "a.Id desc"
 	Order := this.GetString("Order")
 	Prop := this.GetString("Prop")
+	ENumber := this.GetString("ENumber")
 	if Order != "" && Prop != "" {
 		orderby = Prop + " " + Order
+		_, list := svc.GetBalanceEntrySerch(this.User.AccCode+LimsTaskBalanceName, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsEntrustMainName, page.CurrentPage, page.Size, orderby, where)
+		if len(list) == 0 {
+			orderby = " a." + Prop + " " + Order
+			_, list := svc.GetBalanceEntrySerch(this.User.AccCode+LimsTaskBalanceName, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsEntrustMainName, page.CurrentPage, page.Size, orderby, where)
+			if len(list) == 0 {
+				orderby = " b." + Prop + " " + Order
+				_, list := svc.GetBalanceEntrySerch(this.User.AccCode+LimsTaskBalanceName, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsEntrustMainName, page.CurrentPage, page.Size, orderby, where)
+				if len(list) == 0 {
+					orderby = " c." + Prop + " " + Order
+				}
+			}
+		}
 	}
 	where += " and b.BalanceStatus <> 0 "
 
 	if EntrustNo != "" {
 		where = where + " and b.EntrustNo like '%" + EntrustNo + "%'"
 	}
+	if ENumber != "" {
+		where = where + " and b.EntrustNo like '%" + ENumber + "%'"
+	}
 	if testDetailId != "" {
 		where = where + " and b.TestDetailId = '" + testDetailId + "'"
 	}
@@ -339,6 +355,124 @@ func (this *LimsDataEntryController) GetToDoList() {
 	this.ServeJSON()
 }
 
+// @Title 获取数据录入列表
+// @Description get user by token
+// @Success 200 {object} business.device.DeviceChannels
+// @router /todolistgroup [get]
+func (this *LimsDataEntryController) GetToDoListGroup() {
+	var list []limsdataentry.LimsDateEntryModel
+	//获取分页信息
+	page := this.GetPageInfoForm()
+	queryTaskStatus := this.GetString("queryTaskStatus")
+
+	svc := limsdataentry.GetLimsDataEntryService(utils.DBE)
+	//启动数据录入工作流
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	var processInstanceId string
+	var RoleSet auditsetting.Base_OilAuditSetting
+	ListDone := make([]workflow.ActiMyTasksRetWithTimeVM, 0)
+	rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
+	rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, workflow.DATAAUDIT, &RoleSet)
+	//processInstanceId = svcActiviti.GetMyTasks(RoleSet.WorkFlowCord, this.User.Id)
+	//查出所有的待办和已办任务
+	where := " 1=1 "
+	if len(queryTaskStatus) <= 0 { //保留原来的功能
+		processInstanceId = svcActiviti.GetMyTasks(RoleSet.WorkFlowCord, this.User.Id)
+	} else if queryTaskStatus == "1" { //待办
+		processInstanceId = svcActiviti.GetMyTasks(RoleSet.WorkFlowCord, this.User.Id)
+		if len(processInstanceId) > 0  {
+			where += " and a.Id in (" + processInstanceId + ")"
+		} else {
+			where += " and a.Id = 0"
+		}
+	} else if queryTaskStatus == "2" { //已办
+		ListDone = svcActiviti.GetMyFinishedTasksWithTime(RoleSet.WorkFlowCord, this.User.Id)
+
+		for _, value := range ListDone {
+			processInstanceId = processInstanceId + value.BusinessKey + ","
+		}
+		processInstanceId = strings.Trim(processInstanceId, ",")
+		if len(processInstanceId) > 0  {
+			where += " and a.Id in (" + processInstanceId + ")"
+		} else {
+			where += " and a.Id = 0"
+		}
+	} else {
+		organizeSvc := organize.GetOrganizeService(utils.DBE)
+		departList := organizeSvc.GetChildByTopId(this.User.DepartmentId)
+		//取出当前部门及下级部门的所有用户列表
+		var subUserList []userRole.Base_User
+		whereUser := " 1=1 "
+		whereUser += " and DepartmentId in (" + departList + ")"
+		svc.GetEntities(&subUserList, whereUser)
+		var userIds string
+
+		for _, tmpUser := range subUserList {
+			userIds += strconv.Itoa(tmpUser.Id) + ","
+		}
+		userIds = strings.Trim(userIds, ",")
+
+		where += " AND a.CreateUserId in (" + userIds + ")"
+	}
+
+
+	//switch this.User.DepartmentId {
+	//case "100000150":
+	//	processInstanceId = svcActiviti.GetMyTasks(workflow.TJZ_DATA_KEY, this.User.Id)
+	//case "100000151":
+	//	processInstanceId = svcActiviti.GetMyTasks(workflow.YX_DATA_KEY, this.User.Id)
+	//case "100000168":
+	//	processInstanceId = svcActiviti.GetMyTasks(workflow.JL_DATA_KEY, this.User.Id)
+	//case "100000169":
+	//	processInstanceId = svcActiviti.GetMyTasks(workflow.JN_DATA_KEY, this.User.Id)
+	//}
+	EntrustNo := this.GetString("EntrustNo")
+	testDetailId := this.GetString("TestDetailId")
+	department := this.GetString("department")
+	conUserBy := this.GetString("conUserBy")
+	CheckStatus := this.GetString("CheckStatus")
+	BalanceTime := this.GetString("BalanceTime")
+	DocId := this.GetString("docid")
+	orderby := " EntrustNo desc"
+	Order := this.GetString("Order")
+	PropG := this.GetString("PropG")
+	if Order != "" && PropG != "" {
+		orderby = PropG + " " + Order
+	}
+	if EntrustNo != "" {
+		where = where + " and b.EntrustNo like '%" + EntrustNo + "%'"
+	}
+	if testDetailId != "" {
+		where = where + " and b.TestDetailId = '" + testDetailId + "'"
+	}
+	if department != "" {
+		where = where + " and b.Department like '%" + department + "%'"
+	}
+	if conUserBy != "" {
+		where = where + " and b.ConUserBy = '" + conUserBy + "'"
+	}
+	if CheckStatus != "" {
+		where = where + " and a.CheckStatus = '" + CheckStatus + "'"
+	}
+	if DocId != "" {
+		where = where + " and a.DocId = '" + DocId + "'"
+	}
+	if BalanceTime != "" {
+		dates := strings.Split(BalanceTime, ",")
+		if len(dates) == 2 {
+			minDate := dates[0]
+			maxDate := dates[1]
+			where = where + " and b.BalanceTime>='" + minDate + "' and b.BalanceTime<='" + maxDate + "'"
+		}
+	}
+	total, list := svc.GetBalanceEntrySerchGroup(this.User.AccCode+LimsTaskBalanceName, this.User.AccCode+LimsDateEntryName, this.User.AccCode+LimsEntrustMainName, page.CurrentPage, page.Size, orderby, where)
+	var datainfo DataInfo
+	datainfo.Items = list
+	datainfo.CurrentItemCount = total
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
 // @Title 获取数据录入列表
 // @Description get user by token
 // @Success 200 {object} business.device.DeviceChannels

+ 127 - 27
src/dashoo.cn/frontend_web/src/pages/lims/dataentry/tasktodo2.vue

@@ -6,7 +6,7 @@
     </el-breadcrumb>-->
     <el-card class="box-card">
       <div slot="header" style="height: 13px">
-        <el-radio-group v-model="queryTaskStatus" size="mini" style=" margin-top: -10px; float: left;" @change="initdata2()">
+        <el-radio-group v-model="queryTaskStatus" size="mini" style=" margin-top: -10px; float: left;" @change="initdata2(),initdatagroup()">
           <el-radio-button :label="0">全部</el-radio-button>
           <el-radio-button :label="1">待办</el-radio-button>
           <el-radio-button :label="2">已办</el-radio-button>
@@ -44,8 +44,22 @@
           </el-form-item>
         </el-form>
       </div>
+      <el-row :gutter="20">
+      <el-col :span="6">
+      <el-table :data="taskbalacelistgroup" size="small" border style="height: calc(100vh - 243px)"  :row-class-name="tableRowClassName" height="530px"
+                @sort-change="grouporderby" @selection-change="handleSelectionChange" @row-click="HandleProjectClick" v-loading="tableLoading" highlight-current-row>
+        <el-table-column prop="EntrustNo" sortable min-width="130" label="委托单号" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="CustomerName" sortable min-width="120" label="委托方名称" align="center"
+                         show-overflow-tooltip></el-table-column>
+      </el-table>
+      <el-pagination small style="text-align: left" @size-change="handleGroupSizeChange" @current-change="handleGroupCurrentChange" :current-page="currentGroupPage"
+              :page-sizes="[10, 15, 20, 25]" :page-size="groupsize" layout="total, prev, pager, next" :total="currentItemGroupCount" :pager-count="5" >
+      </el-pagination>
+      </el-col>
+      <el-col :span="18">
+        
       <el-table :data="taskbalacelist" size="small" border style="height: calc(100vh - 243px)"  :row-class-name="tableRowClassName"
-                @sort-change="orderby" @selection-change="handleSelectionChange" v-loading="tableLoading">
+                @sort-change="orderby" @selection-change="handleSelectionChange" v-loading="tableLoading" height="530px">
         <el-table-column label="操作" width="180" align="center" fixed>
           <template slot-scope="scope">
             <el-button slot="reference" type="primary" size="mini" plain title="原始数据录入" v-if="scope.row.CheckStatus != 1 && scope.row.CheckStatus != 2"
@@ -156,6 +170,8 @@
       <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
                      :page-sizes="[10, 15, 20, 25]" :page-size="size" layout="total, sizes, prev, pager, next, jumper" :total="currentItemCount">
       </el-pagination>
+      </el-col>
+      </el-row>
     </el-card>
     <el-dialog title="历史版本" :visible.sync="historydialog" size="small" top="5vh" width="80%">
       <el-table :data="historylist" border style="width: 100%" @sort-change="orderby">
@@ -360,6 +376,7 @@
         eid: 0,
         tbid: 0,
         datadocId: 0,
+        ENumber: '',
         datadoc: '',
         dataurl: '',
         docname: '',
@@ -368,6 +385,7 @@
         currentdate: '',
         stepcode: '',
         detailList: [],
+        taskbalacelistgroup: [],
         taskbalacelist: [],
         selectSamples: [],
         docTemplateDictList: [],
@@ -375,11 +393,14 @@
         dataentryhistorylist: [],
         departmentList: [],
         currentItemCount: 0,
+        currentItemGroupCount: 0,
         historycurrentItemCount: 0,
         historycurrentPage: 1,
         historysize: 10,
         currentPage: 1,
+        currentGroupPage: 1,
         size: 10,
+        groupsize: 10,
         searchform: {
           EntrustNo: '',
           testDetail: '',
@@ -408,7 +429,8 @@
         },
         Column: {
           Order: '',
-          Prop: ''
+          Prop: '',
+          PropG: ''
         },
         tableColumns: [{
           prop: 'DocType',
@@ -417,12 +439,12 @@
           sort: true
         },
 
-          {
-            prop: 'CreatedTime',
-            label: '生成时间',
-            width: 100,
-            sort: true
-          }
+        {
+          prop: 'CreatedTime',
+          label: '生成时间',
+          width: 100,
+          sort: true
+        }
         ],
         partuserlist: [],
         adddataentryFrom: {
@@ -441,10 +463,16 @@
       this.getDictList()
       this.getDetaillist() // 检测明细项下拉
       this.initdata2()
+      this.initdatagroup()
+      this.currentGroupPage = 1
       this.getAuditStepCode()
     },
     watch: {
       $route (val) {
+        this.clearSearch()
+        this.currentGroupPage = 1
+        this.currentPage = 1
+        this.initdatagroup()
         this.initdata2()
       }
     },
@@ -500,8 +528,8 @@
                 }
               }
             }).catch(function (error) {
-              console.log(error)
-        })
+            console.log(error)
+          })
       },
       // 添加数据录入记录
       adddataentry () {
@@ -567,7 +595,8 @@
           _size: this.size,
           Order: this.Column.Order,
           Prop: this.Column.Prop,
-          queryTaskStatus: this.queryTaskStatus
+          queryTaskStatus: this.queryTaskStatus,
+          ENumber: this.ENumber
         }
         Object.assign(params, this.searchform)
 
@@ -588,11 +617,60 @@
             console.error(err)
           })
       },
+
+      initdatagroup () {
+        let _this = this
+        let BalanceTime = []
+        if (!_this.BalanceTime) {
+          _this.BalanceTime = []
+        }
+        // 解析时间
+        if (_this.BalanceTime.length === 2) {
+          _this.BalanceTime[1].setHours(23)
+          _this.BalanceTime[1].setMinutes(59)
+          _this.BalanceTime[1].setSeconds(59)
+          BalanceTime.push(_this.formatDateTime(_this.BalanceTime[0]))
+          BalanceTime.push(_this.formatDateTime(_this.BalanceTime[1]))
+        }
+        // paginate
+        const params = {
+          docid: this.$route.query.docid,
+          _currentPage: this.currentGroupPage,
+          _size: this.groupsize,
+          Order: this.Column.Order,
+          PropG: this.Column.PropG,
+          queryTaskStatus: this.queryTaskStatus
+        }
+        this.tableLoading = true
+        // request
+        _this.$axios.get('/limsdataentry/todolistgroup?BalanceTime=' + BalanceTime.join(','), {
+          params
+        })
+          .then(res => {
+            _this.taskbalacelistgroup = res.data.items
+            _this.currentItemGroupCount = res.data.currentItemCount
+
+            this.tableLoading = false
+          })
+          .catch(err => {
+            this.tableLoading = false
+            // handle error
+            console.error(err)
+          })
+      },
+
+      HandleProjectClick (row) {
+        this.ENumber = row.EntrustNo
+        this.initdata2()
+        console.log(this.EntrustNo, 'this.EntrustNo')
+      // this.initdata(row.Id)
+      },
+  
       // table背景
       tableRowClassName ({
-                           row,
-                           rowIndex
-                         }) {
+        row,
+        rowIndex
+      }) {
         if (row.Recheck === 1) {
           return 'warning-row'
         }
@@ -649,8 +727,8 @@
               this.changepage(row, furl)
             }
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       // 审核页面跳转
       changepage (row, DocAddress) {
@@ -718,8 +796,8 @@
               this.changepdfpage(row, furl)
             }
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       // 查看文档pdf
       changepdfpage (row, DocAddress) {
@@ -748,8 +826,8 @@
             this.historycurrentItemCount = res.data.currentItemCount
             this.dialogTableVisible = true
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       datadownload (val) {
         api.docexport(val.Id, this.$axios)
@@ -768,8 +846,8 @@
               location.href = 'http://' + fdocurl
             }
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       // 数据录入导出
       docdownload (val) {
@@ -789,8 +867,8 @@
                 '&act=edit'
             }
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       // 删除数据
       deldataentry (val) {
@@ -1072,8 +1150,8 @@
               })
             }
           }).catch(err => {
-          console.error(err)
-        })
+            console.error(err)
+          })
       },
       dataentry (val) {
         let _this = this
@@ -1282,6 +1360,15 @@
         this.Column.Prop = column.prop
         this.initdata2()
       },
+      grouporderby (column) {
+        if (column.order === 'ascending') {
+          this.Column.Order = 'asc'
+        } else if (column.order === 'descending') {
+          this.Column.Order = 'desc'
+        }
+        this.Column.PropG = column.prop
+        this.initdatagroup()
+      },
       getDetaillist () {
         let _this = this
         _this.$axios.get('/limsbalance/getdetaillist', {})
@@ -1294,12 +1381,16 @@
           })
       },
       clearSearch () {
+        this.currentPage = 1
+        this.currentGroupPage = 1
+        this.ENumber = ''
         this.searchform.EntrustNo = ''
         this.searchform.TestDetailId = ''
         this.searchform.CheckStatus = ''
         this.BalanceTime = []
         // this.searchform.TestDetailId = ''
         this.initdata2()
+        this.initdatagroup()
       },
       clicksearch () {
         this.currentPage = 1
@@ -1314,6 +1405,15 @@
         this.currentPage = 1
         this.initdata2()
       },
+      handleGroupSizeChange (value) {
+        this.groupsize = value
+        this.currentGroupPage = 1
+        this.initdatagroup()
+      },
+      handleGroupCurrentChange (value) {
+        this.currentGroupPage = value
+        this.initdatagroup()
+      },
       historyhandleCurrentChange (value) {
         this.historycurrentPage = value
         this.refreshdataentrydata()