From e856339c5eef51276d64956f2e3f64386f75ce66 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期日, 04 二月 2024 16:12:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java          |   10 ++
 company/src/components/business/OperaApplyChangeDetailWindow.vue                           |    4 +
 company/src/components/business/OperaInsuranceApplyWindow.vue                              |    7 +
 company/src/views/business/taxes.vue                                                       |    2 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                          |    2 
 server/platform/src/main/java/com/doumee/api/business/WorktypeController.java              |    7 +
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java |    7 +
 company/src/views/index.vue                                                                |  179 +++++++++++++++++++++++++++-----------------
 company/src/components/business/dispatchUnitDetailsPlat.vue                                |    3 
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java          |    2 
 company/src/components/business/OperaApplyChangeUnitDetailWindow.vue                       |    4 
 company/src/views/business/insuranceApply.vue                                              |    2 
 12 files changed, 148 insertions(+), 81 deletions(-)

diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index 80da9b3..b2eb734 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -190,7 +190,11 @@
         <reinsurance ref="reinsurance" @success="successEvent" />
         <!--    鎹㈠巶鐢宠    -->
         <factoryChange ref="factoryChange" @success="successEvent" />
+      <template v-slot:footer>
+        <el-button @click="visible=false">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
+
 </template>
 
 <script>
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
index acf2eb4..22f4c6d 100644
--- a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -178,8 +178,10 @@
         <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
         <!--    鎹㈠巶鐢宠    -->
         <factoryChange ref="factoryChange" @success="successEvent" />
-
         <editFactoryChange ref="editFactoryChange" @success="successEvent" />
+      <template v-slot:footer>
+        <el-button @click="visible=false">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
 </template>
 
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index e234098..fdbfc1c 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -250,6 +250,9 @@
         <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
         <!--    鎹㈠巶鐢宠    -->
         <factoryChange ref="factoryChange" @success="successEvent" />
+      <template v-slot:footer>
+        <el-button @click="visible=false">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
 </template>
 
@@ -335,6 +338,8 @@
      open(title,target){
         this.visible = true;
         this.title = title
+        this.model={}
+        this.dataId=null
         this.dataId = target.id
         this.getDetail()
         this.getList()
@@ -520,7 +525,7 @@
     onSubmit(){
 
     },
-    getDetail(){
+     getDetail(){
       getDetail(this.dataId).then(res => {
         this.model = res
         this.tableData = new Array()
diff --git a/company/src/components/business/dispatchUnitDetailsPlat.vue b/company/src/components/business/dispatchUnitDetailsPlat.vue
index 0301cf8..b73dd8b 100644
--- a/company/src/components/business/dispatchUnitDetailsPlat.vue
+++ b/company/src/components/business/dispatchUnitDetailsPlat.vue
@@ -112,6 +112,9 @@
       <OperaDispatchUnitWindow ref="OperaDispatchUnitWindow" @success="callback" />
       <dispatchReview ref="dispatchReview"  @success="callback" />
       <dispatchReviewCheck ref="dispatchReviewCheck" @success="callback" />
+      <template v-slot:footer>
+        <el-button @click="visible=false">杩斿洖</el-button>
+      </template>
     </GlobalWindow>
 </template>
 
diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue
index ef77ed9..d569c0e 100644
--- a/company/src/views/business/insuranceApply.vue
+++ b/company/src/views/business/insuranceApply.vue
@@ -75,7 +75,7 @@
                     fixed="right"
                 >
                     <template slot-scope="{row}">
-                        <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('缂栬緫鎶曚繚鐢宠淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
+                        <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('鎶曚繚鐢宠璇︽儏', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
                     </template>
                 </el-table-column>
             </el-table>
diff --git a/company/src/views/business/taxes.vue b/company/src/views/business/taxes.vue
index dd2edea..e9f02a7 100644
--- a/company/src/views/business/taxes.vue
+++ b/company/src/views/business/taxes.vue
@@ -84,7 +84,7 @@
                     <template slot-scope="{row}">
                         <el-button v-if="row.status == 0" type="text" @click="$refs.OperaTaxesUploadWindow.open('涓婁紶鍙戠エ',row)">涓婁紶鍙戠エ</el-button>
                         <el-button v-if="row.status == 1 && userInfo.type === 0" type="text" @click="$refs.OperaTaxesUploadWindow.open('淇敼鍙戠エ',row)">淇敼鍙戠エ</el-button>
-                        <el-button type="text" @click="$refs.OperaTaxesWindow.open('鐢宠璇︽儏',row)">鐢宠璇︽儏</el-button>
+                        <el-button type="text" @click="$refs.OperaTaxesWindow.open('寮�绁ㄧ敵璇疯鎯�',row)">鐢宠璇︽儏</el-button>
                     </template>
                 </el-table-column>
             </el-table>
diff --git a/company/src/views/index.vue b/company/src/views/index.vue
index f459835..0e23f2a 100644
--- a/company/src/views/index.vue
+++ b/company/src/views/index.vue
@@ -42,7 +42,7 @@
                 <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
               </div>
               <div class="list_item_right">
-                <span>鏌ョ湅璇︽儏</span>
+                <span @click="detail(item)">鏌ョ湅</span>
               </div>
             </div>
           </div>
@@ -68,7 +68,7 @@
                 <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
               </div>
               <div class="list_item_right">
-                <span>鏌ョ湅璇︽儏</span>
+                <span  @click="detail(item)">鏌ョ湅</span>
               </div>
             </div>
           </div>
@@ -94,7 +94,7 @@
                 <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
               </div>
               <div class="list_item_right">
-                <span>鏌ョ湅璇︽儏</span>
+                <span  @click="detail(item)">鏌ョ湅</span>
               </div>
             </div>
           </div>
@@ -110,28 +110,47 @@
         </div>
       </div>
     </div>
+    <OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="backDo"/>
+    <dispatchUnitDetailsPlat ref="dispatchUnitDetailsPlat" @success="backDo"/>
+    <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="backDo"/>
+    <OperaApplyChangeUnitDetailWindow ref="operaApplyChangeUnitDetailWindow" @success="backDo"/>
+    <OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="backDo"/>
+    <OperaTaxesWindow ref="OperaTaxesWindow" @success="backDo"/>
   </div>
 </template>
 
 <script>
-import * as echarts from 'echarts';
-import {mapState} from "vuex";
+import * as echarts from 'echarts'
+import { mapState } from 'vuex'
+import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
+import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat'
+import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
+import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
+import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
+import OperaTaxesWindow from '@/components/business/OperaTaxesWindow'
 import { fetchList as noticeList } from '@/api/business/notices'
 export default {
+  components: { OperaInsuranceApplyWindow ,
+    dispatchUnitDetailsPlat,
+    OperaTaxesWindow,
+    OperaSettleClaimsWindow,
+    OperaApplyChangeDetailWindow,
+    OperaApplyChangeUnitDetailWindow
+  },
   name: 'Index',
   data () {
     return {
       activeName: '0',
-      tabs:[],
+      tabs: [],
       page0: 1,
       page1: 1,
       page2: 1,
       totalPage2: 0,
       totalPage1: 0,
       totalPage0: 0,
-      tableData0:[],
-      tableData1:[],
-      tableData2:[],
+      tableData0: [],
+      tableData1: [],
+      tableData2: [],
       cate: [
         {
           name: '鎶曚繚鐢宠',
@@ -191,81 +210,99 @@
   computed: {
     ...mapState(['userInfo'])
   },
-  mounted() {
+  mounted () {
     this.setPicture1()
     this.setPicture2()
     this.setPicture3()
     this.initPanel()
   },
   methods: {
-    getNoticeList(type,page){
-      noticeList({
-            page: page,
-            capacity: 5,
-            model: { queryType:type},
-            sorts: []
-          })
-          .then(response => {
-            if(type ===0){
-              this.tableData0 = response.records
-              this.totalPage0 = response.total
-            }
-            if(type ===1){
-              this.tableData1 = response.records
-              this.totalPage1 = response.total
-            } if(type ===2){
-              this.tableData2 = response.records
-              this.totalPage2 = response.total
-            }
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
+    detail (obj) {
+      if (obj.objType === 0) {
+       this.$refs.operaInsuranceApplyWindow.open('鎶曚繚鐢宠璇︽儏', {id:obj.objId})
+      } else if (obj.objType === 1) {
+        this.$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', {id:obj.objId,applyId:obj.param1})
+      } else if (obj.objType === 2) {
+        this.$refs.operaApplyChangeUnitDetailWindow.open('鎹㈠巶鐢宠璇︽儏', {id:obj.objId,applyId:obj.param1})
+      } else if (obj.objType === 3) {
+        this.$refs.dispatchUnitDetailsPlat.open('娲鹃仯鍗曡鎯�', {id:obj.objId})
+      } else if (obj.objType === 4) {
+        this.$refs.OperaTaxesWindow.open('寮�绁ㄧ敵璇疯鎯�', {id:obj.objId})
+      } else if (obj.objType === 5) {
+        this.$refs.operaSettleClaimsWindow.open('鐞嗚禂璇︽儏', {id:obj.objId})
+      }
     },
-    initPanel(){
+    backDo(){
+
+    },
+    getNoticeList (type, page) {
+      noticeList({
+        page: page,
+        capacity: 5,
+        model: { queryType: type },
+        sorts: []
+      })
+        .then(response => {
+          if (type === 0) {
+            this.tableData0 = response.records
+            this.totalPage0 = response.total
+          }
+          if (type === 1) {
+            this.tableData1 = response.records
+            this.totalPage1 = response.total
+          } if (type === 2) {
+            this.tableData2 = response.records
+            this.totalPage2 = response.total
+          }
+        })
+        .catch(e => {
+          this.$tip.apiFailed(e)
+        })
+    },
+    initPanel () {
       var pemissons = this.userInfo.permissions
 
-      if(pemissons.includes("business:notice:insurance")){
-        this.tabs.push( {name:"0",label:"鎶曚繚浠e姙" })
+      if (pemissons.includes('business:notice:insurance')) {
+        this.tabs.push({ name: '0', label: '鎶曚繚浠e姙' })
       }
-      if(pemissons.includes("business:notice:tax")){
-        this.tabs.push( {name:"1",label:"鍙戠エ浠e姙" })
+      if (pemissons.includes('business:notice:tax')) {
+        this.tabs.push({ name: '1', label: '鍙戠エ浠e姙' })
       }
-      if(pemissons.includes("business:notice:settle")){
-        this.tabs.push( {name:"2",label:"鐞嗚禂浠e姙" })
+      if (pemissons.includes('business:notice:settle')) {
+        this.tabs.push({ name: '2', label: '鐞嗚禂浠e姙' })
       }
-      if(pemissons.includes("business:notice:insurance")){
-        this.getNoticeList(0,this.page0 )
+      if (pemissons.includes('business:notice:insurance')) {
+        this.getNoticeList(0, this.page0)
       }
-      if(pemissons.includes("business:notice:tax")){
-        this.getNoticeList(1,this.page1 )
+      if (pemissons.includes('business:notice:tax')) {
+        this.getNoticeList(1, this.page1)
       }
-      if(pemissons.includes("business:notice:settle")){
-        this.getNoticeList(2,this.page2 )
+      if (pemissons.includes('business:notice:settle')) {
+        this.getNoticeList(2, this.page2)
       }
     },
-    handleClick(e) {
+    handleClick (e) {
       this.activeName = e.name
     },
-    handleCurrentChange0(page) {
+    handleCurrentChange0 (page) {
       this.page0 = page
-      this.getNoticeList(0,this.page0 )
+      this.getNoticeList(0, this.page0)
     },
-    handleCurrentChange1(page) {
+    handleCurrentChange1 (page) {
       this.page1 = page
-      this.getNoticeList(1,this.page1 )
+      this.getNoticeList(1, this.page1)
     },
-    handleCurrentChange2(page) {
+    handleCurrentChange2 (page) {
       this.page2 = page
-      this.getNoticeList(2,this.page2)
+      this.getNoticeList(2, this.page2)
     },
-    jump(url) {
-      if (!url) return;
-      this.$router.push({ path: url });
+    jump (url) {
+      if (!url) return
+      this.$router.push({ path: url })
     },
     setPicture1 () {
-      let chartDom = this.$refs.picture1;
-      let myChart = echarts.init(chartDom);
+      const chartDom = this.$refs.picture1
+      const myChart = echarts.init(chartDom)
       let option
       option = {
         title: {
@@ -282,7 +319,7 @@
             radius: '50%',
             data: [
               { value: 1048, name: '淇濋殰涓�' },
-              { value: 735, name: '涓嶅湪淇�' },
+              { value: 735, name: '涓嶅湪淇�' }
             ],
             emphasis: {
               itemStyle: {
@@ -293,13 +330,13 @@
             }
           }
         ]
-      };
+      }
 
-      option && myChart.setOption(option);
+      option && myChart.setOption(option)
     },
     setPicture2 () {
-      let chartDom = this.$refs.picture2;
-      let myChart = echarts.init(chartDom);
+      const chartDom = this.$refs.picture2
+      const myChart = echarts.init(chartDom)
       let option
       option = {
         title: {
@@ -329,13 +366,13 @@
             type: 'line'
           }
         ]
-      };
+      }
 
-      option && myChart.setOption(option);
+      option && myChart.setOption(option)
     },
     setPicture3 () {
-      let chartDom = this.$refs.picture3;
-      let myChart = echarts.init(chartDom);
+      const chartDom = this.$refs.picture3
+      const myChart = echarts.init(chartDom)
       let option
       option = {
         title: {
@@ -356,7 +393,7 @@
           containLabel: true
         },
         xAxis: {
-          type: 'value',
+          type: 'value'
           // boundaryGap: [0, 0.01]
         },
         yAxis: {
@@ -377,9 +414,9 @@
             data: [15, 16, 24]
           }
         ]
-      };
+      }
 
-      option && myChart.setOption(option);
+      option && myChart.setOption(option)
     }
   }
 }
@@ -520,7 +557,7 @@
       }
       .home_content_right_page {
         margin-top: 20px;
-        position: absolute;
+        position: relative;
         bottom: 20px;
         left: 20px;
         box-sizing: border-box;
diff --git a/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java b/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
index 1ee2268..a143fc9 100644
--- a/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/DispatchUnitController.java
@@ -7,6 +7,7 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.DispatchUnitQueryDTO;
 import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
 import com.doumee.dao.business.model.DispatchUnit;
 import com.doumee.service.business.DispatchUnitService;
@@ -74,6 +75,15 @@
         return ApiResponse.success(null);
     }
 
+
+    @ApiOperation("鏁版嵁鍒楄〃")
+    @PostMapping("/findListByDTO")
+    @RequiresPermissions("business:dispatchunit:query")
+    public ApiResponse<List<DispatchUnit>> findListByDTO (@RequestBody DispatchUnitQueryDTO dispatchUnitQueryDTO) {
+        return ApiResponse.success(dispatchUnitService.findByDTO(dispatchUnitQueryDTO));
+    }
+
+
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
     @RequiresPermissions("business:dispatchunit:update")
diff --git a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
index 269ce50..eaa4bf5 100644
--- a/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.WorkTypeQueryDTO;
 import com.doumee.dao.business.model.Worktype;
 import com.doumee.service.business.WorktypeService;
 import io.swagger.annotations.*;
@@ -68,6 +69,12 @@
         worktypeService.updateById(worktype);
         return ApiResponse.success(null);
     }
+    @ApiOperation("鏍规嵁鏉′欢宸ョ鍒楄〃")
+    @PostMapping("/findListByDTO")
+    public ApiResponse<List<Worktype>> findListByDTO (@RequestBody WorkTypeQueryDTO workTypeQueryDTO) {
+        return ApiResponse.success(worktypeService.findListByDTO(workTypeQueryDTO));
+    }
+
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index b00e2c2..ff6ca38 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -764,7 +764,7 @@
         CA_PALTFORM_EDIT_PIDAN(21, "淇敼鎵瑰崟","淇敼鍘熷洜锛�${param}",1),
         PALTFORM_EDIT_BD(22, "淇敼淇濆崟","淇敼鍘熷洜锛�${param}",1),
         CA_JIAJIAN_APPLY_SIGN(23, "鍔犲噺淇濈敵璇蜂紒涓氱绔�","",1),
-        CA_CHANGUNIT_APPLY_SIGN(24, "鎹㈡垚鐢宠浼佷笟绛剧珷","",1),
+        CA_CHANGUNIT_APPLY_SIGN(24, "鎹㈠巶鐢宠浼佷笟绛剧珷","",1),
         CA_UPLOAD_AGAIN(25, "鍐嶆鎶曚繚","",1),
         ;
         // 鎴愬憳鍙橀噺
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
index 4e4de3a..914ad0b 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -33,7 +33,6 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -42,7 +41,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index d8b8640..68c17f2 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -893,14 +893,15 @@
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         List<DispatchUnit> dispatchUnitList  = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
                 new MPJLambdaWrapper<DispatchUnit>().selectAll(DispatchUnit.class)
-                        .selectAs(DuSolution::getId,DispatchUnit::getDuSolutionId)
-                        .leftJoin(DuSolution.class,DuSolution::getDispatchUnitId,DispatchUnit::getId)
+//                        .selectAs(DuSolution::getId,DispatchUnit::getDuSolutionId)
+//                        .leftJoin(DuSolution.class,DuSolution::getDispatchUnitId,DispatchUnit::getId)
                         .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
                         .eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
                         .eq(DispatchUnit::getStatus,Constants.ZERO)
                         //.eq(DispatchUnit::getDataType,dispatchUnitQueryDTO.getDataType())
                         .eq(DispatchUnit::getDataType,Constants.TWO)
-                        .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
+                        .exists("select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id" )
+//                        .eq(!Objects.isNull(dispatchUnitQueryDTO.getSolutionId()),DuSolution::getSolutionId,dispatchUnitQueryDTO.getSolutionId())
                         .exists(!Objects.isNull(dispatchUnitQueryDTO.getApplyId()),
                                 " select 1 from apply_detail ad where ad.isdeleted = 0 and ad.apply_id = "+dispatchUnitQueryDTO.getApplyId()+" " +
                                         " and ad.du_id = t.id ")

--
Gitblit v1.9.3