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

+ 5 - 1
src/main/h5/src/views/Home.vue

@@ -71,6 +71,10 @@
           <div v-if="info.programmeStatus == 'AUDIT_FAILED'">初审未通过</div>
           <div v-if="info.programmeStatus == 'REVIEW_FAILED'">复审未通过</div>
         </div>
+        <div class="base-info-item" v-if="info.showAward">
+          <div class="text1">奖项</div>
+          <div class="text2">{{ info.award }}</div>
+        </div>
       </div>
       <div class="base-info">
         <img class="left-icon icon" src="../assets/icon_lianjie.png" alt="" />
@@ -270,7 +274,7 @@ export default {
     },
     url() {
       return (
-        "http://wljtest.izouma.com/home?performanceId=" +
+        "http://yskj.njlyw.cn:8081/home?performanceId=" +
         this.info.performanceId +
         "&programmeId=" +
         this.$route.query.programmeId

+ 4 - 1
src/main/java/com/izouma/wenlvju/dto/ProgrammeShowDTO.java

@@ -63,9 +63,12 @@ public class ProgrammeShowDTO {
     @ExcelProperty(value = "参赛人数")
     private int quantity;
 
-    @ExcelProperty(value = "奖项")
+    @ExcelIgnore
     private String award;
 
+    @ExcelIgnore
+    private boolean showAward;
+
     @ExcelIgnore
     private int process;
 

+ 41 - 20
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -89,7 +89,7 @@ public class ProgrammeService {
                 .orElseThrow(new BusinessException("无专业"))
                 .getName();
         String setting = "";
-        if (ObjectUtil.isNotNull(programme.getLevelSettingId())){
+        if (ObjectUtil.isNotNull(programme.getLevelSettingId())) {
             setting = settingRepo.findById(programme.getLevelSettingId())
                     .orElseThrow(new BusinessException("无分组"))
                     .getName();
@@ -199,12 +199,24 @@ public class ProgrammeService {
         Map<Long, String> settingMap = settingRepo.findAllById(settingIds)
                 .stream()
                 .collect(Collectors.toMap(Setting::getId, Setting::getName));
+        Map<Long, String> awardMap = awardRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(Award::getId, Award::getName));
 
-        return all.map(programme -> toDTO(programme, performanceMap.get(programme.getPerformanceId()),
-                organizationMap.get(programme.getOrganizationId()),
-                gradingOrganizationMap.get(programme.getGradingOrganizationId()),
-                artTypeMap.get(programme.getSpecialtyId()),
-                settingMap.get(programme.getLevelSettingId())));
+        return all.map(programme -> {
+            ProgrammeDTO dto = new ProgrammeDTO(programme);
+            dto.setPerformance(performanceMap.get(programme.getPerformanceId()));
+            dto.setOrganization(organizationMap.get(programme.getOrganizationId()));
+            dto.setGradingOrganization(gradingOrganizationMap.get(programme.getGradingOrganizationId()));
+            dto.setSpecialty(artTypeMap.get(programme.getSpecialtyId()));
+            if (ObjectUtil.isNotNull(programme.getLevelSettingId())) {
+                dto.setLevel(settingMap.get(programme.getLevelSettingId()));
+            }
+            if (ObjectUtil.isNotNull(programme.getAwardId())) {
+                dto.setAward(awardMap.get(programme.getAwardId()));
+            }
+            return dto;
+        });
     }
 
     public ProgrammeDTO toDTO(Programme programme, String performance, String organization, String gradingOrganization, String artType,
@@ -247,21 +259,27 @@ public class ProgrammeService {
         programmes.forEach(programme -> {
             List<Participant> participants = participantMap.get(programme.getId());
             if (CollUtil.isEmpty(participants)) {
-                ProgrammeDTO programmeDTO = toDTO(programme, performanceMap.get(programme.getPerformanceId()),
-                        organizationMap.get(programme.getOrganizationId()),
-                        gradingOrganizationMap.get(programme.getGradingOrganizationId()),
-                        artTypeMap.get(programme.getSpecialtyId()),
-                        settingMap.get(programme.getLevelSettingId()));
-                dtos.add(programmeDTO);
+                ProgrammeDTO dto = new ProgrammeDTO(programme);
+                dto.setPerformance(performanceMap.get(programme.getPerformanceId()));
+                dto.setOrganization(organizationMap.get(programme.getOrganizationId()));
+                dto.setGradingOrganization(gradingOrganizationMap.get(programme.getGradingOrganizationId()));
+                dto.setSpecialty(artTypeMap.get(programme.getSpecialtyId()));
+                if (ObjectUtil.isNotNull(programme.getLevelSettingId())) {
+                    dto.setLevel(settingMap.get(programme.getLevelSettingId()));
+                }
+                dtos.add(dto);
             } else {
                 participants.forEach(participant -> {
-                    ProgrammeDTO programmeDTO = toDTO(programme, performanceMap.get(programme.getPerformanceId()),
-                            organizationMap.get(programme.getOrganizationId()),
-                            gradingOrganizationMap.get(programme.getGradingOrganizationId()),
-                            artTypeMap.get(programme.getSpecialtyId()),
-                            settingMap.get(programme.getLevelSettingId()));
-                    programmeDTO.setParticipant(participant);
-                    dtos.add(programmeDTO);
+                    ProgrammeDTO dto = new ProgrammeDTO(programme);
+                    dto.setPerformance(performanceMap.get(programme.getPerformanceId()));
+                    dto.setOrganization(organizationMap.get(programme.getOrganizationId()));
+                    dto.setGradingOrganization(gradingOrganizationMap.get(programme.getGradingOrganizationId()));
+                    dto.setSpecialty(artTypeMap.get(programme.getSpecialtyId()));
+                    if (ObjectUtil.isNotNull(programme.getLevelSettingId())) {
+                        dto.setLevel(settingMap.get(programme.getLevelSettingId()));
+                    }
+                    dto.setParticipant(participant);
+                    dtos.add(dto);
                 });
             }
         });
@@ -943,7 +961,10 @@ public class ProgrammeService {
     public ProgrammeShowDTO get(Long id, String phone) {
         Programme apply = programmeRepo.findById(id).orElseThrow(new BusinessException("无记录"));
         userService.getAuth(id, phone, apply.getPhone());
-        return this.toShowDTO(apply);
+        ProgrammeShowDTO showDTO = this.toShowDTO(apply);
+        awardRepo.findById(apply.getAwardId()).ifPresent(aw -> showDTO.setAward(aw.getName()));
+        performanceRepo.findById(apply.getPerformanceId()).ifPresent(pe -> showDTO.setShowAward(pe.isShowAward()));
+        return showDTO;
     }
 
     /*

+ 22 - 0
src/main/java/com/izouma/wenlvju/utils/JpaUtils.java

@@ -1,5 +1,6 @@
 package com.izouma.wenlvju.utils;
 
+import cn.hutool.core.convert.Convert;
 import com.izouma.wenlvju.annotations.Searchable;
 import com.izouma.wenlvju.annotations.SearchableOne;
 import com.izouma.wenlvju.dto.PageQuery;
@@ -143,6 +144,27 @@ public class JpaUtils {
                     and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
                 }
 
+            } else if (Long.class == fieldType) {
+                if (value instanceof Collection) {
+                    if (!((Collection) value).isEmpty()) {
+                        List list = new ArrayList();
+                        for (Object o : ((Collection) value)) {
+                            list.add(Convert.convert(Long.class, o));
+                        }
+                        and.add(root.get(property).in(list));
+                    }
+                } else if (value instanceof String && StringUtils.isNotEmpty((String) value)) {
+                    if (((String) value).contains(",")) {
+                        String[] arr = ((String) value).split(",");
+                        List list = new ArrayList();
+                        for (String s : arr) {
+                            list.add(Convert.convert(Long.class, s));
+                        }
+                        and.add(root.get(property).in(list));
+                    } else {
+                        and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
+                    }
+                }
             } else {
                 and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get(property), value)));
             }

+ 3 - 1
src/main/vue/src/views/organization/OrganizationList.vue

@@ -10,11 +10,12 @@
                     class="filter-item"
                     style="width: 220px"
                     @change="getData"
+                    size="mini"
                 ></el-input>
             </el-col>
             <el-col :span="7">
                 <label class="span-size">承办单位地址</label>
-                <el-select v-model="district" style="width: 220px" @change="getData" clearable>
+                <el-select v-model="district" style="width: 220px" @change="getData" clearable size="mini">
                     <el-option
                         v-for="item in districts"
                         :key="item.id"
@@ -35,6 +36,7 @@
                     :default-time="['00:00:00', '23:59:59']"
                     class="filter-item"
                     @change="getData"
+                    size="mini"
                 >
                 </el-date-picker>
             </el-col>

+ 3 - 0
src/main/vue/src/views/performance/PerformanceEdit.vue

@@ -126,6 +126,9 @@
             <el-form-item prop="close" label="开启报名">
                 <el-switch v-model="formData.close"></el-switch>
             </el-form-item>
+            <el-form-item prop="showAward" label="显示奖项">
+                <el-switch v-model="formData.showAward"></el-switch>
+            </el-form-item>
         </el-form>
         <div class="btn">
             <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>

+ 114 - 12
src/main/vue/src/views/performance/ProgScoreAdminList.vue

@@ -2,14 +2,15 @@
     <div class="list-view">
         <div class="filters-container">
             <el-form :model="form" size="mini" inline>
+                <!-- <el-row> -->
+                <!-- <el-col :span="24"> -->
                 <el-row>
-                    <el-col :span="24">
+                    <el-col :span="8">
                         <el-form-item label="活动名称">
                             <el-select
                                 v-model="performanceId"
-                                clearable
                                 filterable
-                                placeholder="活动名称"
+                                placeholder="展演活动名称"
                                 style="width: 300px"
                                 @change="changeAddress"
                             >
@@ -22,6 +23,8 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
                         <el-form-item label="参赛专业">
                             <el-cascader
                                 ref="artCascader"
@@ -35,19 +38,83 @@
                             >
                             </el-cascader>
                         </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
                         <el-form-item label="节目编号">
                             <el-input placeholder="节目编号" v-model="form.id" clearable></el-input>
                         </el-form-item>
-                        <el-form-item>
-                            <el-button @click="getData" type="primary" icon="el-icon-search" size="mini"
-                                >查询
-                            </el-button>
-                        </el-form-item>
-                        <el-form-item>
-                            <el-button @click="editRow(performanceId)">设置复审</el-button>
-                        </el-form-item>
                     </el-col>
                 </el-row>
+                <el-collapse-transition>
+                    <div v-show="showMore">
+                        <el-row>
+                            <el-col :span="8">
+                                <el-form-item label="考级机构">
+                                    <el-select
+                                        v-model="form.gradingOrganizationId"
+                                        clearable
+                                        filterable
+                                        placeholder="考级机构"
+                                        style="width: 100%"
+                                    >
+                                        <el-option
+                                            v-for="item in gradingOrganizationIdOptions"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value"
+                                        >
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="8">
+                                <el-form-item label="承办单位">
+                                    <el-select
+                                        v-model="form.organizationId"
+                                        clearable
+                                        filterable
+                                        placeholder="承办单位"
+                                        style="width: 100%"
+                                    >
+                                        <el-option
+                                            v-for="item in organizationIdOptions"
+                                            :key="item.value"
+                                            :label="item.label"
+                                            :value="item.value"
+                                        >
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+
+                            <el-col :span="8">
+                                <el-form-item label="节目名称">
+                                    <el-input placeholder="节目名称" v-model="form.name" clearable></el-input>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-collapse-transition>
+                <div style="width:100%;textAlign:center;margin-bottom:10px;">
+                    <el-button
+                        class="more"
+                        round
+                        type="primary"
+                        :plain="!showMore"
+                        :icon="showMore ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
+                        @click="showMore = !showMore"
+                        size="mini"
+                        >{{ showMore ? '隐藏查询区域' : '显示查询区域' }}</el-button
+                    >
+                </div>
+                <el-form-item>
+                    <el-button @click="getData" type="primary" icon="el-icon-search" size="mini">查询 </el-button>
+                </el-form-item>
+                <el-form-item>
+                    <el-button @click="editRow(performanceId)">设置复审</el-button>
+                </el-form-item>
+                <!-- </el-col> -->
+                <!-- </el-row> -->
             </el-form>
         </div>
         <el-table
@@ -262,11 +329,46 @@ export default {
                 emitPath: false,
                 checkStrictly: true,
                 expandTrigger: 'hover'
-            }
+            },
+            showMore: false,
+            organizationIdOptions: [],
+            gradingOrganizationIdOptions: []
         };
     },
     created() {
         // this.morning = isSameDay(addHours(new Date(), 12), new Date());
+        this.$http
+            .post('/gradingOrganization/all', { size: 1000, query: { del: false } }, { body: 'json' })
+            .then(res => {
+                if (res.content.length > 0) {
+                    res.content.forEach(item => {
+                        this.gradingOrganizationIdOptions.push({
+                            label: item.name,
+                            value: item.id
+                        });
+                    });
+                }
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
+        this.$http
+            .post('/organization/all', { size: 1000, query: { del: false } }, { body: 'json' })
+            .then(res => {
+                if (res.content.length > 0) {
+                    res.content.forEach(item => {
+                        this.organizationIdOptions.push({
+                            label: item.name,
+                            value: item.id
+                        });
+                    });
+                }
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
         this.$http
             .post('/artType/allList')
             .then(res => {

+ 6 - 4
src/main/vue/src/views/performance/ProgrammeOrgList.vue

@@ -199,8 +199,8 @@
             :height="tableHeight"
         >
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
-            <el-table-column prop="id" label="编号" width="80" fixed="left"> </el-table-column>
-            <el-table-column prop="name" label="节目名称" fixed="left"> </el-table-column>
+            <el-table-column prop="id" label="编号" width="70" fixed="left"> </el-table-column>
+            <el-table-column prop="name" label="节目名称" fixed="left" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="specialty" label="参赛专业"> </el-table-column>
             <el-table-column
                 prop="competitionGroup"
@@ -249,7 +249,7 @@
                     <span v-if="row.programmeStatus == 'REVIEW_FAILED'">复审未通过</span>
                 </template>
             </el-table-column>
-            <!-- <el-table-column prop="examPoint" label="考级点" min-width="160"> </el-table-column> -->
+            <el-table-column prop="award" label="奖项" min-width="80" v-if="showAward"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" min-width="300">
                 <template slot-scope="{ row, $index }">
                     <el-button @click="showRow(row)" size="mini" plain>查看</el-button>
@@ -391,7 +391,8 @@ export default {
             ],
             loading: false,
             programme: {},
-            index: 0
+            index: 0,
+            showAward: false
         };
     },
     created() {
@@ -753,6 +754,7 @@ export default {
             //     this.add = false;
             // }
             this.add = data.close;
+            this.showAward = data.showAward;
             this.getData();
         },
         playVideo(row, index) {

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

@@ -38,7 +38,7 @@
                     </el-col>
                     <el-col :span="8">
                         <el-form-item label="奖项">
-                            <el-select v-model="form.awardId" clearable>
+                            <el-select v-model="form.awardId" clearable multiple>
                                 <el-option
                                     v-for="item in awards"
                                     :key="item.value"