licailing 4 år sedan
förälder
incheckning
a1daef5740

+ 3 - 0
src/main/java/com/izouma/wenlvju/domain/TrainingInstitution.java

@@ -28,6 +28,7 @@ public class TrainingInstitution extends BaseEntity {
     @ApiModelProperty("企业名称")
     private String name;
 
+    @Searchable
     @ExcelProperty(value = "注册号")
     @ApiModelProperty("注册号")
     private String uscc;
@@ -146,7 +147,9 @@ public class TrainingInstitution extends BaseEntity {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ExcelIgnore
     private boolean submit;
 
+    @ExcelProperty(value = "填写时间")
     private LocalDateTime firstWrite;
 }

+ 7 - 7
src/main/java/com/izouma/wenlvju/service/RateService.java

@@ -379,7 +379,7 @@ public class RateService {
 
     public List<InputStream> upLoad1(Rate rate) throws UnsupportedEncodingException {
         List<InputStream> files = new ArrayList<>();
-        String uri = "http://convert.izouma.com/word2pdf";
+        String uri = "http://10.188.236.2/word2pdf";
 
         // 表格
         String export = this.export(rate);
@@ -419,7 +419,7 @@ public class RateService {
                         throw new BusinessException("找不到文件");
                     }
                 }
-                InputStream stream = HttpRequest.post("http://convert.izouma.com/word2pdf")
+                InputStream stream = HttpRequest.post("http://10.188.236.2/word2pdf")
                         .accept("*/*")
                         .part("file", "审核材料.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", is1)
                         .stream();
@@ -444,11 +444,11 @@ public class RateService {
 
     public List<File> upLoad(Rate rate) {
         List<File> files = new ArrayList<>();
-        String uri = "http://convert.izouma.com/word2pdf";
+        String uri = "http://10.188.236.2/word2pdf";
         // 表格
         String export = this.export(rate);
         InputStream is = new ByteArrayInputStream(export.getBytes());
-        File file = new File("/Users/qiufangchao/Desktop/" + "申请表" + ".pdf");
+        File file = new File(localPath + "申请表" + ".pdf");
         HttpRequest.post(uri)
                 .accept("*/*")
                 .part("file", "审核材料.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", is)
@@ -462,10 +462,10 @@ public class RateService {
         AtomicInteger num = new AtomicInteger(1);
         urls.forEach(privacy -> {
             num.getAndIncrement();
-            File file1 = new File("/Users/qiufangchao/Desktop/" + filename + num + ".pdf");
+            File file1 = new File(localPath + filename + num + ".pdf");
             if ("doc".equals(getSuffix(privacy)) || "docx".equals(getSuffix(privacy))) {
                 InputStream is1 = HttpRequest.get(privacy).stream();
-                HttpRequest.post("http://convert.izouma.com/word2pdf")
+                HttpRequest.post("http://10.188.236.2/word2pdf")
                         .accept("*/*")
                         .part("file", "审核材料.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", is1)
                         .receive(file1);
@@ -567,7 +567,7 @@ public class RateService {
     public void mergePdf(Rate rate) throws IOException {
         List<InputStream> files = this.upLoad1(rate);
 
-        String targetPath = "/Users/qiufangchao/Desktop/rate/material" + rate.getId() + ".pdf";
+        String targetPath = localPath + "/material" + rate.getId() + ".pdf";
         // pdf合并工具类
         PDFMergerUtility mergePdf = new PDFMergerUtility();
 

+ 10 - 0
src/main/java/com/izouma/wenlvju/service/TrainingInstitutionService.java

@@ -16,6 +16,7 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.persistence.criteria.Predicate;
 import javax.transaction.Transactional;
 import java.io.IOException;
 import java.util.List;
@@ -33,6 +34,15 @@ public class TrainingInstitutionService {
         return trainingInstitutionRepo.findAll(JpaUtils.toSpecification(pageQuery, TrainingInstitution.class), JpaUtils.toPageRequest(pageQuery));
     }
 
+    public Page<TrainingInstitution> fillIn(PageQuery pageQuery) {
+        pageQuery.setSort("firstWrite,desc");
+        return trainingInstitutionRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
+            List<Predicate> and = JpaUtils.toPredicates(pageQuery, TrainingInstitution.class, root, criteriaQuery, criteriaBuilder);
+            and.add(criteriaBuilder.isNotNull(root.get("firstWrite")));
+            return criteriaBuilder.and(and.toArray(new Predicate[0]));
+        }), JpaUtils.toPageRequest(pageQuery));
+    }
+
     public void batchSend(List<String> phones) throws InterruptedException {
 
         int count = phones.size() / 980;

+ 7 - 0
src/main/java/com/izouma/wenlvju/web/TrainingInstitutionController.java

@@ -68,6 +68,13 @@ public class TrainingInstitutionController extends BaseController {
         ExcelUtils.export(response, data);
     }
 
+    @GetMapping("/excelWrite")
+    @ResponseBody
+    public void excelWrite(HttpServletResponse response, PageQuery pageQuery) throws IOException {
+        List<TrainingInstitution> data = trainingInstitutionService.fillIn(pageQuery).getContent();
+        ExcelUtils.export(response, data);
+    }
+
     @GetMapping("/excel1")
     @ResponseBody
     public void excel1(HttpServletResponse response) throws IOException {

+ 25 - 15
src/main/vue/src/views/TrainingInstitutionEdit.vue

@@ -4,7 +4,7 @@
             :model="formData"
             :rules="rules"
             ref="form"
-            label-width="178px"
+            label-width="170px"
             label-position="right"
             size="small"
             style="max-width: 700px;"
@@ -16,7 +16,7 @@
                 <el-input v-model="formData.uscc"></el-input>
             </el-form-item>
             <el-form-item prop="businessScope" label="经营范围">
-                <el-input type="textarea" v-model="formData.businessScope"></el-input>
+                <el-input type="textarea" :rows="4" v-model="formData.businessScope"></el-input>
             </el-form-item>
             <el-form-item prop="address" label="企业住所">
                 <el-input v-model="formData.address"></el-input>
@@ -27,9 +27,9 @@
             <el-form-item prop="privacyPolicy" label="法人姓名">
                 <el-input v-model="formData.privacyPolicy"></el-input>
             </el-form-item>
-            <el-form-item prop="phone" label="短信号码">
+            <!-- <el-form-item prop="phone" label="短信号码">
                 <el-input v-model="formData.phone"></el-input>
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item prop="contactPhone" label="企业联系方式">
                 <el-input v-model="formData.contactPhone"></el-input>
             </el-form-item>
@@ -40,19 +40,24 @@
                 <el-input-number type="number" v-model="formData.registeredCapital"></el-input-number>
             </el-form-item>
             <el-form-item prop="category" label="单位性质">
-                <el-input v-model="formData.category"></el-input>
+                <!-- <el-input v-model="formData.category"></el-input> -->
+                <el-radio-group v-model="formData.category">
+                    <el-radio v-for="item in categories" :key="item" :label="item">{{ item }}</el-radio>
+                </el-radio-group>
             </el-form-item>
             <el-form-item prop="specialty" label="专业种类">
                 <el-input v-model="formData.specialty"></el-input>
             </el-form-item>
             <el-form-item prop="trainingSite" label="培训点数量三楼及以下">
+                <!-- <span style="padding: 10px;color: #606266;">三楼及以下</span> -->
                 <el-input-number type="number" v-model="formData.trainingSite"></el-input-number>
-            </el-form-item>
-            <el-form-item prop="trainingSiteFour" label="培训点数量四楼及以上">
+                <!-- </el-form-item>
+            <el-form-item prop="trainingSiteFour" label="培训点数量四楼及以上"> -->
+                <span style="padding: 10px;color: #606266;">四楼及以上</span>
                 <el-input-number type="number" v-model="formData.trainingSiteFour"></el-input-number>
             </el-form-item>
             <el-form-item prop="area" label="总面积">
-                <el-input v-model="formData.area"></el-input>
+                <el-input-number type="number" v-model="formData.area"></el-input-number>
             </el-form-item>
             <el-form-item prop="classroomNum" label="教室数量">
                 <el-input-number type="number" v-model="formData.classroomNum"></el-input-number>
@@ -62,20 +67,23 @@
             </el-form-item>
             <el-form-item prop="fullTimeNum" label="专职数量">
                 <el-input-number type="number" v-model="formData.fullTimeNum"></el-input-number>
-            </el-form-item>
-            <el-form-item prop="partTimeNum" label="兼职数量">
+                <!-- </el-form-item>
+            <el-form-item prop="partTimeNum" label="兼职数量"> -->
+                <span style="padding: 10px;color: #606266;">兼职数量</span>
                 <el-input-number type="number" v-model="formData.partTimeNum"></el-input-number>
             </el-form-item>
             <el-form-item prop="musicNum" label="音乐类">
                 <el-input-number type="number" v-model="formData.musicNum"></el-input-number>
-            </el-form-item>
-            <el-form-item prop="danceNum" label="舞蹈类">
+                <!-- </el-form-item>
+            <el-form-item prop="danceNum" label="舞蹈类"> -->
+                <span style="padding: 10px;color: #606266;margin-left:10px"> 舞蹈类</span>
                 <el-input-number type="number" v-model="formData.danceNum"></el-input-number>
             </el-form-item>
             <el-form-item prop="artNum" label="美术类">
                 <el-input-number type="number" v-model="formData.artNum"></el-input-number>
-            </el-form-item>
-            <el-form-item prop="theatreOperaNum" label="戏剧戏曲">
+                <!-- </el-form-item>
+            <el-form-item prop="theatreOperaNum" label="戏剧戏曲"> -->
+                <span style="padding: 10px;color: #606266;"> 戏剧戏曲</span>
                 <el-input-number type="number" v-model="formData.theatreOperaNum"></el-input-number>
             </el-form-item>
             <el-form-item prop="folkMusicNum" label="曲艺类">
@@ -128,7 +136,9 @@ export default {
         return {
             saving: false,
             formData: {},
-            rules: {}
+            rules: {},
+            categories: ['企业', '社会组织', '事业单位', '其他'],
+            spcialties: ['音乐类', '舞蹈类', '戏曲戏剧类', '曲艺类', '其他']
         };
     },
     methods: {

+ 37 - 16
src/main/vue/src/views/TrainingInstitutionList.vue

@@ -2,15 +2,22 @@
     <div class="list-view">
         <div class="filters-container">
             <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
+            <el-select v-model="engagedInTraining" clearable class="filter-item">
+                <el-option label="是" :value="true"></el-option>
+                <el-option label="否" :value="false"></el-option>
+            </el-select>
             <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索 </el-button>
             <!-- <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">添加 </el-button> -->
             <el-button @click="download" type="primary" icon="el-icon-download" :loading="downloading"
                 >导出所有
             </el-button>
-            <el-button @click="downloadTel" type="primary" icon="el-icon-download" :loading="downloading"
-                >导出固定电话
+            <el-button @click="downloadWrite" type="primary" icon="el-icon-download" :loading="downloading"
+                >导出已填写
             </el-button>
-            <el-upload
+            <!-- <el-button @click="downloadTel" type="primary" icon="el-icon-download" :loading="downloading"
+                >导出固定电话
+            </el-button> -->
+            <!-- <el-upload
                 :action="uploadUrl"
                 :before-upload="beforeUpload"
                 :headers="headers"
@@ -25,8 +32,8 @@
                 <el-button slot="trigger" type="primary" icon="el-icon-upload2" :loading="loading" :disabled="loading"
                     >批量上传</el-button
                 >
-            </el-upload>
-            <el-button @click="sendSms" type="primary">短信通知 </el-button>
+            </el-upload> -->
+            <!-- <el-button @click="sendSms" type="primary">短信通知 </el-button> -->
         </div>
         <el-table
             :data="tableData"
@@ -42,15 +49,20 @@
             <el-table-column prop="id" label="ID" width="80"> </el-table-column>
             <el-table-column prop="name" label="企业名称"> </el-table-column>
             <el-table-column prop="uscc" label="注册号"> </el-table-column>
+            <el-table-column prop="engagedInTraining" label="是否从事文化艺术类校外培训">
+                <template slot-scope="{ row }">
+                    <span v-if="row.engagedInTraining">是</span>
+                    <span v-else>否</span>
+                </template>
+            </el-table-column>
             <el-table-column prop="businessScope" label="经营范围"> </el-table-column>
-            <el-table-column prop="address" label="企业住所"> </el-table-column>
-            <el-table-column prop="businessPremise" label="生产经营场所"> </el-table-column>
+            <!-- <el-table-column prop="address" label="企业住所"> </el-table-column> -->
+            <!-- <el-table-column prop="businessPremise" label="生产经营场所"> </el-table-column> -->
             <el-table-column prop="privacyPolicy" label="法人姓名"> </el-table-column>
-            <el-table-column prop="phone" label="短信号码"> </el-table-column>
+            <!-- <el-table-column prop="phone" label="短信号码"> </el-table-column> -->
             <el-table-column prop="contactPhone" label="企业联系方式"> </el-table-column>
             <el-table-column prop="district" label="所属管区"> </el-table-column>
             <el-table-column prop="registeredCapital" label="注册资本(万)"> </el-table-column>
-            <el-table-column prop="engagedInTraining" label="是否从事文化艺术类校外培训"> </el-table-column>
             <el-table-column prop="category" label="单位性质"> </el-table-column>
             <el-table-column prop="specialty" label="专业种类"> </el-table-column>
             <el-table-column prop="trainingSite" label="培训点数量三楼及以下"> </el-table-column>
@@ -67,9 +79,14 @@
             <el-table-column prop="folkMusicNum" label="曲艺类"> </el-table-column>
             <el-table-column prop="qualificationNum" label="有教师资格证"> </el-table-column>
             <el-table-column prop="traineesPerYearNum" label="年培训人数"> </el-table-column>
-            <el-table-column prop="examPoint" label="是否是艺术水平考级考点"> </el-table-column>
+            <el-table-column prop="examPoint" label="是否是艺术水平考级考点">
+                <template slot-scope="{ row }">
+                    <span v-if="row.examPoint">是</span>
+                    <span v-else>否</span>
+                </template>
+            </el-table-column>
             <el-table-column prop="gradingOrganization" label="艺术水平考级机构名称"> </el-table-column>
-            <el-table-column prop="remark" label="备注"> </el-table-column>
+            <!-- <el-table-column prop="remark" label="备注"> </el-table-column> -->
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
@@ -115,7 +132,8 @@ export default {
             url: '/trainingInstitution/all',
             downloading: false,
             loading: false,
-            uploadUrl: ''
+            uploadUrl: '',
+            engagedInTraining: ''
         };
     },
     computed: {
@@ -135,7 +153,10 @@ export default {
         beforeGetData() {
             return {
                 search: this.search,
-                sort: 'firstWrite,desc'
+                sort: 'firstWrite,desc',
+                query: {
+                    engagedInTraining: this.engagedInTraining
+                }
             };
         },
         toggleMultipleMode(multipleMode) {
@@ -184,12 +205,12 @@ export default {
                     this.$message.error(e.error);
                 });
         },
-        downloadTel() {
+        downloadWrite() {
             this.downloading = true;
             this.$axios
-                .get('/trainingInstitution/excel1', {
+                .get('/trainingInstitution/excelWrite', {
                     responseType: 'blob',
-                    params: { size: 50000 }
+                    params: { size: 100000 }
                 })
                 .then(res => {
                     console.log(res);