licailing 4 лет назад
Родитель
Сommit
1d208cd40d

+ 2 - 0
src/main/java/com/izouma/wenlvju/dto/ProgrammeDTO.java

@@ -75,6 +75,8 @@ public class ProgrammeDTO extends BaseRowModel {
     @ExcelProperty(value = "参赛人数")
     private int quantity;
 
+    @ExcelIgnore
+    private int status;
 //    @ExcelProperty(value = "参赛人员姓名")
 //    private String participantName;
 //

+ 15 - 4
src/main/java/com/izouma/wenlvju/service/UserService.java

@@ -217,14 +217,24 @@ public class UserService {
         return setPassword(userId, password);
     }
 
-    public Page<ExpertDTO> all1(PageQuery pageQuery, List<Authority> authorities) {
+    // 转专业名称
+    public Page<ExpertDTO> toArtType(PageQuery pageQuery, List<Authority> authorities) {
         Map<Long, String> artMap = artTypeRepo.findAll()
                 .stream()
                 .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
-        return this.all2(pageQuery, authorities).map(user -> new ExpertDTO(user, artMap.get(user.getArtTypeId())));
+        return this.byAuthority(pageQuery, authorities).map(user -> new ExpertDTO(user, artMap.get(user.getArtTypeId())));
     }
 
-    public Page<ExpertDTO> all3(Long rateId) {
+    // 展演活动分配评委
+    public Page<ExpertDTO> performanceExpert(PageQuery pageQuery, List<Authority> authorities) {
+        Map<Long, String> artMap = artTypeRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
+        return this.byAuthority(pageQuery, authorities).map(user -> new ExpertDTO(user, artMap.get(user.getArtTypeId())));
+    }
+
+    // 等级评定分配专家列表
+    public Page<ExpertDTO> rateExpert(Long rateId) {
         PageQuery pageQuery = new PageQuery();
         pageQuery.setSize(1000);
         pageQuery.getQuery().put("del", false);
@@ -252,13 +262,14 @@ public class UserService {
             and.add(join.in(Authority.get(AuthorityName.ROLE_EXPERT), Authority.get(AuthorityName.ROLE_DISTRICT_STAFF)));
 
             criteriaQuery.distinct(true);
+            // 排除一个工作单位的
             names.forEach(name -> and.add(criteriaBuilder.notLike(root.get("work"), "%" + name + "%")));
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
         }), JpaUtils.toPageRequest(pageQuery)).map(user -> new ExpertDTO(user, artMap.get(user.getArtTypeId())));
     }
 
 
-    public Page<User> all2(PageQuery pageQuery, List<Authority> authorities) {
+    public Page<User> byAuthority(PageQuery pageQuery, List<Authority> authorities) {
         pageQuery.getQuery().put("del", false);
         pageQuery.setSort("createdAt,desc");
         return userRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {

+ 1 - 1
src/main/vue/src/views/performance/PerformanceList.vue

@@ -130,7 +130,7 @@ export default {
     },
     created() {
         this.currentTime = format(new Date(), 'yyyy-MM-dd');
-        console.log(this.currentTime);
+        // console.log(this.currentTime);
     },
     computed: {
         selection() {

+ 34 - 16
src/main/vue/src/views/performance/ProgrammeOrgList.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="list-view">
         <div class="filters-container">
-            <el-form :model="form" inline label-width="100px">
+            <el-form :model="form" inline size="mini" label-width="100px">
                 <el-row>
                     <el-col :span="8">
                         <el-form-item label="活动名称">
@@ -14,9 +14,9 @@
                             >
                                 <el-option
                                     v-for="item in performances"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.value"
+                                    :key="item.id"
+                                    :label="item.name"
+                                    :value="item.id"
                                 >
                                 </el-option>
                             </el-select>
@@ -129,7 +129,7 @@
                 </el-row>
                 <el-form-item>
                     <el-button @click="getData" type="primary" icon="el-icon-search">搜索 </el-button>
-                    <el-button @click="addRow" type="primary" icon="el-icon-plus">添加 </el-button>
+                    <el-button @click="addRow" type="primary" icon="el-icon-plus" v-if="add">添加 </el-button>
                     <el-upload
                         :action="uploadUrl"
                         :before-upload="beforeUpload"
@@ -140,9 +140,7 @@
                         class="uploader"
                         :on-error="onfail"
                     >
-                        <el-button slot="trigger" size="small" type="primary" icon="el-icon-upload2"
-                            >批量上传</el-button
-                        >
+                        <el-button slot="trigger" type="primary" icon="el-icon-upload2" v-if="add">批量上传</el-button>
                     </el-upload>
                     <el-button
                         @click="download"
@@ -188,7 +186,9 @@
             <el-table-column label="操作" align="center" fixed="right" min-width="340">
                 <template slot-scope="{ row }">
                     <el-button @click="showRow(row)" size="mini" plain>查看</el-button>
-                    <el-button type="success" @click="editRow(row)" size="mini" plain>编辑</el-button>
+                    <el-button type="success" @click="editRow(row)" size="mini" plain v-if="row.status == 0"
+                        >编辑</el-button
+                    >
                     <el-button type="warning" @click="playVideo(row)" size="mini" plain>浏览视频</el-button>
                     <el-button @click="showCode(row)" type="primary" size="mini" plain>查看二维码</el-button>
                     <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
@@ -253,6 +253,7 @@ import { mapState } from 'vuex';
 import pageableTable from '@/mixins/pageableTable';
 import QrcodeVue from 'qrcode.vue';
 import resolveUrl from 'resolve-url';
+import { format } from 'date-fns';
 
 export default {
     name: 'ProgrammeOrgList',
@@ -293,11 +294,14 @@ export default {
             videoUrl: '',
             name: '',
             instructor: '',
-            uploadUrl: ''
+            uploadUrl: '',
+            currentTime: '',
+            add: false
         };
     },
     created() {
         this.uploadUrl = resolveUrl(this.$baseUrl, 'programme/upload');
+        this.currentTime = format(new Date(), 'yyyy-MM-dd');
         this.$http
             .post('/setting/byFlag', { flag: 3 })
             .then(res => {
@@ -365,12 +369,17 @@ export default {
             )
             .then(res => {
                 if (res.content.length > 0) {
-                    res.content.forEach(item => {
-                        this.performances.push({
-                            label: item.name,
-                            value: item.id
-                        });
-                    });
+                    // res.content.forEach(item => {
+                    //     this.performances.push({
+                    //         label: item.name,
+                    //         value: item.id
+                    //     });
+                    // });
+                    this.performances = res.content;
+                    if (!this.$route.query.pid) {
+                        this.performanceId = res.content[0].id;
+                        this.canAdd(this.performanceId);
+                    }
                 }
             })
             .catch(e => {
@@ -603,6 +612,15 @@ export default {
                 cancelButtonText: '取消',
                 type: 'warning'
             });
+        },
+        canAdd(id) {
+            let data = this.performances.find(item => {
+                item.id == id;
+                return item;
+            });
+            if (data.endDate > this.currentTime) {
+                this.add = true;
+            }
         }
     }
 };

+ 1 - 0
src/test/java/com/izouma/wenlvju/repo/performance/ProgrammeScoreRepoTest.java

@@ -15,6 +15,7 @@ public class ProgrammeScoreRepoTest {
     @Autowired
     private ProgrammeRepo      programmeRepo;
 
+
     @Test
     public void test() {
         Object avgObj = programmeScoreRepo.avgScore(1346L);

+ 1 - 1
src/test/java/com/izouma/wenlvju/service/UserServiceTest.java

@@ -12,7 +12,7 @@ public class UserServiceTest extends ApplicationTests {
 
     @Test
      public void test() {
-        System.out.println(userService.all3(12506L).getContent());
+        System.out.println(userService.rateExpert(12506L).getContent());
     }
 
 }

+ 5 - 0
src/test/java/com/izouma/wenlvju/service/performance/ArrangeJudgeServiceTest.java

@@ -23,4 +23,9 @@ public class ArrangeJudgeServiceTest extends ApplicationTests {
         System.out.println(arrangeService.byExpert(new PageQuery(), 1L).getContent());
     }
 
+    @Test
+    public void  test2(){
+        arrangeService.publish(1013L);
+    }
+
 }