Procházet zdrojové kódy

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

Lijy před 2 roky
rodič
revize
20648c033d

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -996,5 +996,10 @@ public class ProjectController {
     public HttpRespMsg fixParticipators(Integer companyId, HttpServletRequest request){
         return projectService.fixParticipators(companyId,request);
     }
+
+    @RequestMapping("/removeDuplicateParticipators")
+    public HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request){
+        return projectService.removeDuplicateParticipators(companyId,request);
+    }
 }
 

+ 40 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -783,6 +783,7 @@ public class ReportController {
                 LocalDate cDate = report.getCreateDate();
                 //查找同一个人同一天的日报合计工作时长
                 double dailyWorktime = reportList.stream().filter(r->r.getCreatorId().equals(creatorId) && r.getCreateDate().isEqual(cDate)).mapToDouble(Report::getWorkingTime).sum();
+
                 if (dailyWorktime > comTimeType.getAllday()) {
                     HttpRespMsg httpRespMsg = new HttpRespMsg();
                     httpRespMsg.setError("每日工作时长不得超过"+comTimeType.getAllday()+"小时");
@@ -790,6 +791,45 @@ public class ReportController {
                 }
             }
         }
+        //校验填报工时
+        List<Report> checkedUserDayList = new ArrayList<>();
+        for (Report report : reportList) {
+            String creatorId = report.getCreatorId();
+            LocalDate cDate = report.getCreateDate();
+            if (checkedUserDayList.stream().anyMatch(item->item.getCreatorId().equals(creatorId) && item.getCreateDate().isEqual(cDate))) {
+                //避免重复校验
+                continue;
+            } else {
+                //加入
+                checkedUserDayList.add(report);
+            }
+            //查找同一个人同一天的日报合计工作时长
+            double dailyWorktime = reportList.stream().filter(r->r.getCreatorId().equals(creatorId) && r.getCreateDate().isEqual(cDate)).mapToDouble(Report::getWorkingTime).sum();
+            //数据库中已经填报过的工时
+            if (dailyWorktime > comTimeType.getMaxReportTime()) {
+                HttpRespMsg httpRespMsg = new HttpRespMsg();
+                httpRespMsg.setError("每日工作时长不得超过"+comTimeType.getMaxReportTime()+"小时");
+                return httpRespMsg;
+            } else {
+                //查找数据库中可能已有老的记录
+                List<Report> oldList = reportMapper.selectList(new QueryWrapper<Report>().select("id, state, working_time").eq("create_date", cDate).eq("creator_id", creatorId));
+                //老的记录需要合并计算不在本次reportList中,并且状态是0(待审核)或者1(已通过)的
+                //按周填报都可能会有已存在日报的情况,前端没有传过来
+                double existingWorktime = oldList.stream().filter(old->!reportList.stream().anyMatch(newItem->old.getId().equals(newItem.getId()))
+                                && (old.getState() == 0 || old.getState() == 1)).mapToDouble(Report::getWorkingTime).sum();
+                if (existingWorktime > 0) {
+                    dailyWorktime += existingWorktime;
+                    if (dailyWorktime > comTimeType.getMaxReportTime()) {
+                        HttpRespMsg httpRespMsg = new HttpRespMsg();
+                        httpRespMsg.setError("每日工作时长不得超过"+comTimeType.getMaxReportTime()+"小时");
+                        return httpRespMsg;
+                    }
+                }
+            }
+
+        }
+
+
 
         //只有项目管理专业版才要检查成本预算
         if (company.getPackageProject() == 1) {

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -121,7 +121,7 @@ public class TaskController {
             List<GroupParticipator> groupParticipatorList = groupParticipatorMapper.selectList(new QueryWrapper<GroupParticipator>().eq("group_id", task.getGroupId()));
             for (TaskExecutor executor : executorList) {
                 if(executor.getExecutorId()!=null){
-                    boolean b = groupParticipatorList.stream().anyMatch(gp -> gp.getUserId().equals(executor.getExecutorId()));
+                    boolean b = groupParticipatorList.stream().anyMatch(gp -> gp.getUserId() != null && gp.getUserId().equals(executor.getExecutorId()));
                     if(!b){
                         GroupParticipator g=new GroupParticipator();
                         g.setGroupId(task.getGroupId());

+ 14 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TimeType.java

@@ -1,23 +1,23 @@
 package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import java.math.BigDecimal;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.List;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.List;
-
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-08-24
+ * @since 2022-09-06
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -359,6 +359,13 @@ public class TimeType extends Model<TimeType> {
     @TableField(exist = false)
     private List<User> userList;
 
+    /**
+     * 日报填报时长上限,默认12小时
+     */
+    @TableField("max_report_time")
+    private Float maxReportTime;
+
+
     @Override
     protected Serializable pkVal() {
         return this.companyId;

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -186,4 +186,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg batchExchangeIncharger(String projectIds, String inchargerId, HttpServletRequest request);
 
     HttpRespMsg fixParticipators(Integer companyId, HttpServletRequest request);
+
+    HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request);
 }

+ 50 - 30
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -39,7 +39,6 @@ import java.sql.Timestamp;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
-import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -47,7 +46,6 @@ import java.time.chrono.ChronoLocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 
 /**
@@ -2774,16 +2772,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             inputStream.close();
             outputStream.close();
             if(fileName.endsWith(".xlsx")){
-                if(!fileName.endsWith(".xlsx")){
-                    msg.setError("文件格式错误,请使用’.xlsx’格式");
-                    return msg;
-                }
                 //然后解析表格
                 XSSFWorkbook workbook = new XSSFWorkbook(file);
                 //我们只需要第一个sheet
                 XSSFSheet sheet = workbook.getSheetAt(0);
                 //获取全部人员
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).eq("is_active", 1));
                 //获取全部供货商分类列表
                 List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", user.getCompanyId()));
                 Company company = companyMapper.selectById(user.getCompanyId());
@@ -2842,7 +2836,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         throw new Exception("项目名称不能为空");
                     }
                     Project project = new Project();
-                    boolean flag=false;
+                    boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                         if (code.equals("项目编号") && rowIndex == 0) {
@@ -2870,7 +2864,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
-                                flag=true;
+                                exists=true;
                             }
                         }
                         project.setProjectCode(code);
@@ -2915,7 +2909,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if (isPublicCell != null && !StringUtils.isEmpty(isPublicCell.getStringCellValue())) {
                         project.setIsPublic("是".equals(isPublicCell.getStringCellValue())?1:0);
                     }
-                    if(flag){
+                    if(exists){
                         Project updateProject = projectMapper.selectList(new QueryWrapper<Project>().eq("project_code", project.getProjectCode()).eq("company_id", user.getCompanyId())).get(0);
                         project.setId(updateProject.getId());
                         projectMapper.updateById(project);
@@ -2948,7 +2942,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     //导入项目参与人,遵守只增不减的原则, 避免误删
                     List<Participation> oldPartList = new ArrayList<>();
-                    if (!flag) {
+                    if (exists) {
                         //更新的项目,检查已经存在的项目参与人
                         oldPartList = participationMapper.selectList(new QueryWrapper<Participation>().eq("project_id", project.getId()));
                     }
@@ -3008,16 +3002,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 operationRecord.setContent("导入了"+importCount+"条项目数据");
                 operationRecordService.save(operationRecord);
             }else if(fileName.endsWith(".xls")){
-                if(!fileName.endsWith(".xls")){
-                    msg.setError("文件格式错误,请使用’.xlsx’格式");
-                    return msg;
-                }
                 //然后解析表格
                 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
                 //我们只需要第一个sheet
                 HSSFSheet sheet = workbook.getSheetAt(0);
-                //获取全部人员
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
+                //获取全部人员,仅在职人员
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()).eq("is_active", 1));
                 //获取全部供货商分类列表
                 List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", user.getCompanyId()));
                 Company company = companyMapper.selectById(user.getCompanyId());
@@ -3256,7 +3246,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         throw new Exception("项目名称不能为空");
                     }
                     Project project = new Project();
-                    boolean flag=false;
+                    boolean exists=false;
                     if (codeCell != null) {
                         String code = codeCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
                         if (code.equals("项目编号") && rowIndex == 0) {
@@ -3289,7 +3279,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 //                            throw new Exception("项目编号存在重复: " + code);
                                 existCodeList.add(code);
                                 //跳过编号重复的数据
-                                flag=true;
+                                exists=true;
                             }
                         }
                         project.setProjectCode(code);
@@ -3486,7 +3476,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             }
                         }
                     }
-                    if(flag){
+                    if(exists){
                         Project updateProject = projectMapper.selectList(new QueryWrapper<Project>().eq("project_code", project.getProjectCode()).eq("company_id", user.getCompanyId())).get(0);
                         project.setId(updateProject.getId());
                         projectMapper.updateById(project);
@@ -3528,7 +3518,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         if (projectCategorySubCell != null && !StringUtils.isEmpty(projectCategorySubCell.getStringCellValue())) {
                             projectSeparate.setProjectCategorySub(projectCategorySubCell.getStringCellValue());
                         }
-                        if(flag&&check){
+                        if(exists&&check){
                            projectSeparateMapper.updateById(projectSeparate);
                             List<ProjectKeyNodes> nodes = projectKeyNodesMapper.selectList(new QueryWrapper<ProjectKeyNodes>().eq("project_id", id));
                             for (int x = 0; x < projectKeyNodesSettingList.size(); x++) {
@@ -3801,9 +3791,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     importCount++;
                     //导入项目参与人,遵守只增不减的原则, 避免误删
                     List<Participation> oldPartList = new ArrayList<>();
-                    if (!flag) {
+                    if (exists) {
                         //更新的项目,检查已经存在的项目参与人
                         oldPartList = participationMapper.selectList(new QueryWrapper<Participation>().eq("project_id", project.getId()));
+                        System.out.println("获取到已有项目参与人:"+oldPartList.size());
                     }
                     List<Participation> participationList = new ArrayList<>();
                     if(inchargerCell!=null){
@@ -3933,7 +3924,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Override
     public HttpRespMsg exportData(HttpServletRequest request) {
-        LocalDateTime time=LocalDateTime.now();
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", user.getCompanyId()));
@@ -3999,6 +3989,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<List<String>> allList = new ArrayList<List<String>>();
         allList.add(headList);
         String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
+        //获取项目级别数据
+        List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", user.getCompanyId()));
         DateTimeFormatter sdf =DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DecimalFormat df = new DecimalFormat("##0.0#");
         //获取项目子表 数据
@@ -4063,11 +4055,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 rowData.add(projectVO.getCustomerName());
             }
             if (company.getPackageProject() == 1) {
-                Integer level = projectVO.getLevel();
-                if (level == null) {
-                    level = 1;
+                if(timeType.getProjectLevelState()==1){
+                    Optional<ProjectLevel> first = projectLevelList.stream().filter(pl -> pl.getId().equals(projectVO.getLevel())).findFirst();
+                    if(first.isPresent()){
+                        rowData.add(first.get().getProjectLevelName());
+                    }else rowData.add("");
+                }else {
+                    Integer level = projectVO.getLevel();
+                    if (level == null) {
+                        level = 1;
+                    }
+                    rowData.add(levelArray[level-1]);
                 }
-                rowData.add(levelArray[level-1]);
                 rowData.add(df.format((Double)projectVO.getContractAmount()));
             }
             if(company.getId()==936){
@@ -4119,9 +4118,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             allList.add(rowData);
         }
-        LocalDateTime time1=LocalDateTime.now();
-        Duration between = Duration.between(time1, time);
-        System.out.println("耗时"+between.toMillis()+"毫秒");
         //生成excel文件导出
         String fileName = "项目导出_"+company.getCompanyName()+System.currentTimeMillis();
         String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
@@ -6284,6 +6280,30 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return msg;
     }
 
+    @Override
+    public HttpRespMsg removeDuplicateParticipators(Integer companyId, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("company_id", companyId));
+        List<Integer> projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+        List<Participation> partList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", projectIds));
+        //排重
+        List<Participation> oneList = new ArrayList<>();
+        List<Participation> duplicateList = new ArrayList<>();
+        partList.forEach(part->{
+            if (oneList.stream().anyMatch(one->one.getUserId().equals(part.getUserId())
+                    && one.getProjectId().equals(part.getProjectId()))) {
+                duplicateList.add(part);
+            } else {
+                oneList.add(part);
+            }
+        });
+        if (duplicateList.size() > 0) {
+            participationService.removeByIds(duplicateList.stream().map(Participation::getId).collect(Collectors.toList()));
+            msg.data = duplicateList.size();
+        }
+        return msg;
+    }
+
 
     private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -449,7 +449,9 @@ public class TimingTask {
                 });
             }
         });
-
+        if (isDev) {
+            return;
+        }
         List<Map<String, Object>> dingdingUserList = userMapper.getPushDingdingUserList(str, date);
         //钉钉平台的用批量发送, 每分钟5000个
         int minuteSize = 5000;

+ 93 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/logback.xml

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 日志存放路径 ./表示当前运行目录-->
+	<property name="log.path" value="./" />
+    <!-- 日志输出格式 -->
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+	<!-- 控制台输出 -->
+	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+	</appender>
+	
+	<!-- 系统日志输出 -->
+	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/workTime.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+			<fileNamePattern>${log.path}/workTime.%d{yyyy-MM-dd}.log</fileNamePattern>
+			<!-- 日志最大的历史 60天 -->
+			<maxHistory>2</maxHistory>
+		</rollingPolicy>
+		<encoder>
+			<pattern>${log.pattern}</pattern>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别 -->
+            <level>DEBUG</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+	</appender>
+	
+	<!--<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+	    <file>${log.path}/sys-error.log</file>
+        &lt;!&ndash; 循环政策:基于时间创建日志文件 &ndash;&gt;
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            &lt;!&ndash; 日志文件名格式 &ndash;&gt;
+            <fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
+			&lt;!&ndash; 日志最大的历史 60天 &ndash;&gt;
+			<maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            &lt;!&ndash; 过滤的级别 &ndash;&gt;
+            <level>ERROR</level>
+			&lt;!&ndash; 匹配时的操作:接收(记录) &ndash;&gt;
+            <onMatch>ACCEPT</onMatch>
+			&lt;!&ndash; 不匹配时的操作:拒绝(不记录) &ndash;&gt;
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>-->
+	
+	<!-- 用户访问日志输出  -->
+    <!--<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>${log.path}/sys-user.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            &lt;!&ndash; 按天回滚 daily &ndash;&gt;
+            <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
+            &lt;!&ndash; 日志最大的历史 60天 &ndash;&gt;
+            <maxHistory>2</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>-->
+	
+	<!-- 系统模块日志级别控制  -->
+	<logger name="com.management.platform.mapper" level="debug" />
+	<!-- Spring日志级别控制  -->
+	<logger name="org.springframework" level="warn" />
+
+	<root level="info">
+		<appender-ref ref="console" />
+	</root>
+	
+	<!--系统操作日志-->
+    <root level="info">
+        <appender-ref ref="file_info" />
+        <!--<appender-ref ref="file_error" />-->
+    </root>
+	
+	<!--系统用户操作日志-->
+    <!--<logger name="sys-user" level="info">
+        <appender-ref ref="sys-user"/>
+    </logger>-->
+</configuration> 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TimeTypeMapper.xml


+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -1005,7 +1005,7 @@ import { error } from 'dingtalk-jsapi';
                 if(this.typeField != 'null' && this.typeField != null && this.typeField != '') {
                     parameter.type = this.typeField
                 }
-                if(this.dateSelect.length != 0){
+                if(this.dateSelect != null && this.dateSelect.length != 0){
                     parameter.dateType = this.dateType
                     parameter.startDate = this.dateSelect[0]
                     parameter.endDate = this.dateSelect[1]
@@ -1204,7 +1204,7 @@ import { error } from 'dingtalk-jsapi';
             },
             // 下拉框选择
             hiddens(e) {
-                if(e == 1 && this.dateSelect == null || this.dateSelect.length == 0){
+                if(e == 1 && (this.dateSelect == null || this.dateSelect.length == 0)){
                     return
                 }
                 // console.log(this.searchField)

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -4486,7 +4486,7 @@
                                         }
                                     }
                                 }
-                                console.log('zhodata',this.zhoData);
+                                // console.log('zhodata',this.zhoData);
                             }else{
                                 this.$message({
                                     message: res.msg,