jiangping
2024-11-05 c9ef2687d3460da668d08d58dee6af468ed6693e
最新版本541200007
已添加2个文件
已修改17个文件
207 ■■■■ 文件已修改
admin/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/public/template/cars.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCarsWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/internalMember.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/relativeMember.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/vehicle/cars.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application-dev.yml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development
@@ -4,5 +4,5 @@
VUE_APP_API_URL  = 'http://localhost:10010'
# VUE_APP_API_URL  = 'http://192.168.0.103:10010'
# VUE_APP_API_URL  = 'http://192.168.0.173/gateway_interface'
VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
# VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
admin/public/template/cars.xlsx
Binary files differ
admin/src/components/business/OperaCarsWindow.vue
@@ -5,7 +5,7 @@
      <el-form-item label="车牌号" prop="code">
        <el-input v-model="form.code" placeholder="请输入车牌号" v-trim />
      </el-form-item>
      <el-form-item label="业务类型" prop="type">
      <el-form-item label="备注" prop="type">
        <el-radio-group v-model="form.type">
          <el-radio :label="0">安泰公务车</el-radio>
          <el-radio :label="1">安泰物流车</el-radio>
@@ -67,7 +67,7 @@
        code: [{ required: true, message: '请输入车牌号' }],
        groupId: [{ required: true, message: '请选择组织' }],
        type: [
          { required: true, message: '请选择业务类型' }
          { required: true, message: '请选择备注' }
        ]
      }
    }
admin/src/components/business/OperaMemberWindow.vue
@@ -37,12 +37,12 @@
        <el-date-picker v-model="form.jobDate" value-format="yyyy-MM-dd" type="date">
        </el-date-picker>
      </el-form-item>
      <el-form-item label="是否党员" prop="isDangyuan">
<!--      <el-form-item label="是否党员" prop="isDangyuan">
        <el-radio-group v-model="form.isDangyuan">
          <el-radio :label="0">非党员</el-radio>
          <el-radio :label="1">党员</el-radio>
        </el-radio-group>
      </el-form-item>
      </el-form-item>-->
      <el-form-item label="人脸照片" prop="faceImgFull">
        <div class="upload_wrap">
          <UploadFaceImg :file="{ 'imgurlfull': form.faceImgFull, 'imgurl': form.faceImg }" :uploadData="uploadData"
admin/src/views/business/internalMember.vue
@@ -94,12 +94,12 @@
        </el-table-column>
        <el-table-column prop="companyName" label="所属部门" min-width="100px"></el-table-column>
        <el-table-column prop="positionName" label="岗位" min-width="100px"></el-table-column>
        <el-table-column prop="isDangyuan" label="是否党员" min-width="100px">
<!--        <el-table-column prop="isDangyuan" label="是否党员" min-width="100px">
          <template slot-scope="{row}">
          <span v-if="row.isDangyuan ==1" style="color: green">党员</span>
          <span v-if="row.isDangyuan ==0">非党员</span>
          </template>
        </el-table-column>
        </el-table-column>-->
        <el-table-column prop="jobDate" label="入职日期" min-width="100px"></el-table-column>
<!--        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
admin/src/views/business/relativeMember.vue
@@ -105,12 +105,12 @@
        </el-table-column>
        <el-table-column prop="companyName" label="所属部门" min-width="100px"></el-table-column>
        <el-table-column prop="positionName" label="岗位" min-width="100px"></el-table-column>
        <el-table-column prop="isDangyuan" label="是否党员" min-width="100px">
<!--        <el-table-column prop="isDangyuan" label="是否党员" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.isDangyuan ==1 " style="color: green">党员</span>
            <span v-if="row.isDangyuan ==0">非党员</span>
          </template>
        </el-table-column>
        </el-table-column>-->
        <el-table-column prop="jobDate" label="入职日期" min-width="100px">  </el-table-column>
<!--        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
admin/src/views/vehicle/cars.vue
@@ -24,7 +24,7 @@
        </el-select>
      </el-form-item>
      <el-form-item label="" prop="type" title="业务类型">
        <el-select v-model="searchForm.type" @change="search" clearable placeholder="业务类型">
        <el-select v-model="searchForm.type" @change="search" clearable placeholder="备注">
          <el-option label="安泰公务车" value="0"></el-option>
          <el-option label="安泰自有物流车" value="1"></el-option>
          <el-option label="其他" value="2"></el-option>
@@ -46,13 +46,6 @@
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="code" label="车牌号" min-width="100px"></el-table-column>
        <el-table-column label="业务类型" min-width="120px">
          <template slot-scope="{row}">
            <span v-if="row.type == 0">安泰公务车</span>
            <span v-if="row.type == 1">安泰自有物流车</span>
            <span v-if="row.type == 2">其他</span>
          </template>
        </el-table-column>
        <el-table-column prop="memberName" label="车主姓名" min-width="100px"></el-table-column>
        <el-table-column prop="memberPhone" label="车主手机号" min-width="100px"></el-table-column>
        <el-table-column prop="cateName" label="车辆分类" min-width="160px"></el-table-column>
@@ -90,6 +83,13 @@
            <div v-else>-</div>
          </template>
        </el-table-column>
        <el-table-column label="备注" min-width="120px">
          <template slot-scope="{row}">
            <span v-if="row.type == 0">安泰公务车</span>
            <span v-if="row.type == 1">安泰自有物流车</span>
            <span v-if="row.type == 2">其他</span>
          </template>
        </el-table-column>
        <el-table-column prop="editorName" label="操作人" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="操作时间" min-width="140px"></el-table-column>
        <el-table-column
server/meeting/meeting_admin/src/main/resources/bootstrap-dev.yml
@@ -15,7 +15,7 @@
      password: nacos
      config:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: dmvisit_dev
#        namespace: dev_renkang
        username: nacos
        password: nacos
server/system_gateway/src/main/resources/application-dev.yml
@@ -1,12 +1,12 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
#    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
#    username: doumee
#    password: rtjgfEr@&0c0m
    url: jdbc:mysql://10.50.250.253:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: doumee
    password: rtjgfEr@&0c0m
#    url: jdbc:mysql://10.50.250.253:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
#    username: root
#    password: Atwl@2024
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
server/system_gateway/src/main/resources/bootstrap-dev.yml
@@ -7,7 +7,7 @@
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
#        namespace: dmvisit
        namespace: dmvisit
        namespace: dmvisit_dev
        username: nacos
        password: nacos
    gateway:
server/system_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -114,8 +114,8 @@
    @Override
    public SystemUser findOne(SystemUser systemUser) {
        Wrapper<SystemUser> wrapper = new QueryWrapper<>(systemUser);
        return systemUserMapper.selectOne(wrapper);
        QueryWrapper<SystemUser> wrapper = new QueryWrapper<SystemUser>(systemUser);
        return systemUserMapper.selectOne(wrapper.lambda().last("limit 1"));
    }
    @Override
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -28,6 +28,9 @@
    @ApiOperation("【访客系统】定时查询设备状态")
    @GetMapping("/timer/device/getAscDeviceStatus")
     ApiResponse getAscDeviceStatus() ;
    @ApiOperation("【访客系统】定时备份数据库")
    @GetMapping("/timer/db/backupDatabase")
     ApiResponse backupDatabase() ;
    @ApiOperation("【访客系统】定时查询月台状态")
    @GetMapping("/timer/platform/getPlatformStatus")
     ApiResponse getPlatformStatus() ;
server/system_timer/src/main/resources/bootstrap-dev.yml
@@ -23,6 +23,6 @@
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: dmvisit_dev
        username: nacos
        password: nacos
server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
package com.doumee.api;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Date;
import com.doumee.core.utils.DateUtil;
import com.doumee.service.business.PlatformJobService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "月台作业定时")
@RestController
@Slf4j
@RequestMapping("/timer/db")
public class DatabaseController extends BaseController {
    @Autowired
    private PlatformJobService platformJobService;
    @ApiOperation("数据库备份,保留最近7个备份sql")
    @GetMapping("/backupDatabase")
    public ApiResponse backupDatabase() {
        try {
            String timestamp = DateUtil.getNowLongTime();
            String path = "/usr/local/jars/db/";
            String backupPath = path + timestamp + ".sql";
            // ä½¿ç”¨mysqldump命令进行数据库备份
            Process process = Runtime.getRuntime().exec(new String[]{"mysqldump ", "-u", "root", "-p","Atwl@2024", "antaiwuliu", "-r", backupPath});
            process.waitFor();
            // æ£€æŸ¥å¤‡ä»½æ˜¯å¦æˆåŠŸ
            if (new File(backupPath).exists()) {
                log.info("数据库备份成功: " + backupPath);
                return ApiResponse.success("数据库备份成功: " + backupPath);
            } else {
                log.error("数据库备份失败.");
            }
            deleteOldFiles(path,7);//保留最近7个文件
        } catch (Exception e) {
            e.printStackTrace();
            log.error("数据库备份失败."+e.getMessage());
        }
        return ApiResponse.failed("数据库备份失败" );
    }
    /**
     * @param path
     */
    public   void deleteOldFiles(String path,int num) {
        //文件路径
        List<File> list = getFileSort(path);
        if(list==null || list.size() <= num){
            return;
        }
        for (int i = 0; i <list.size(); i++) {
            if(i>=7){
                list.get(i).delete();
            }
        }
    }
    /**
     * èŽ·å–ç›®å½•ä¸‹æ‰€æœ‰æ–‡ä»¶(按时间排序)
     *
     * @param path
     * @return
     */
    public static List<File> getFileSort(String path) {
        List<File> list = getFiles(path, new ArrayList<>());
        if (list != null && list.size() > 0) {
            Collections.sort(list, new Comparator<File>() {
                public int compare(File file, File newFile) {
                    if (file.lastModified() < newFile.lastModified()) {
                        return 1;
                    } else if (file.lastModified() == newFile.lastModified()) {
                        return 0;
                    } else {
                        return -1;
                    }
                }
            });
        }
        return list;
    }
    /**
     *
     * èŽ·å–ç›®å½•ä¸‹æ‰€æœ‰æ–‡ä»¶
     *
     * @param realpath
     * @param files
     * @return
     */
    public static List<File> getFiles(String realpath, List<File> files) {
        File realFile = new File(realpath);
        if (realFile.isDirectory()) {
            File[] subfiles = realFile.listFiles();
            for (File file : subfiles) {
                if (file.isDirectory()) {
                    getFiles(file.getAbsolutePath(), files);
                } else {
                    files.add(file);
                }
            }
        }
        return files;
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/common/PublicCloudController.java
@@ -161,16 +161,12 @@
        Map<String, Object> context = new HashMap<>();
        try {
            if(ftp == null){
                log.error("初始化Ftp上传文件成功=============开始========="+DateUtil.getPlusTime2(new Date()));
                ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
                        Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
                log.error("初始化Ftp上传文件成功=============结束========="+DateUtil.getPlusTime2(new Date()));
            }else{
                log.error("重连ftp上传文件成功=============开始========="+DateUtil.getPlusTime2(new Date()));
                ftp.connect();
                log.error("重连ftp上传文件成功=============结束========="+DateUtil.getPlusTime2(new Date()));
            }
            CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
@@ -181,7 +177,10 @@
                    MultipartFile file = multipartRequest.getFile(it.next());
                    String originname = file.getOriginalFilename();
                    is = file.getInputStream();
                    String endType = originname.substring(originname.lastIndexOf("."),originname.length());
                    String endType = ".jpg";
                    if(originname.indexOf(".")>0){
                        endType=originname.substring(originname.lastIndexOf("."),originname.length());
                    }
                    String date = DateUtil.getNowShortDate();
                    String fName =  date+"/"+ UUID.randomUUID()+endType;
                    String fileName = folder+"/"+fName;
server/visits/dmvisit_admin/src/main/resources/bootstrap-dev.yml
@@ -24,7 +24,7 @@
      discovery:
        server-addr: http://175.27.187.84:8848 #配置Nacos地址
#        namespace: dmvisit
        namespace: dmvisit
        namespace: dmvisit_dev
        username: nacos
        password: nacos
# swagger配置
server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: pro
    active: dev
  application:
    name: visitsAdmin
    # å®‰å…¨é…ç½®
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -99,7 +99,7 @@
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前登录用户无法进行该操作!");
        }
        if(carUseBook.getEndTime().getTime()<=System.currentTimeMillis()){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"选择日期异常[结束时间小于当前时间],请刷新重试");
//            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"选择日期异常[结束时间小于当前时间],请刷新重试");
        }
        if(!(DateUtil.getDateFromString(carUseBook.getPlanUseDate()+":00").getTime()>=carUseBook.getStartTime().getTime()
                && DateUtil.getDateFromString(carUseBook.getPlanUseDate() +":00").getTime()<= carUseBook.getEndTime().getTime())
@@ -412,7 +412,7 @@
            }
            //判断时间是否大于当前
            if(Constants.equalsInteger(dateIntervalVO.getIsUse(),Constants.ZERO)  && DateUtil.getDateFromString(dateIntervalVO.getEndTime()).getTime()<=System.currentTimeMillis()){
                dateIntervalVO.setIsUse(Constants.ONE);
//                dateIntervalVO.setIsUse(Constants.ONE);
                continue;
            }
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -310,6 +310,7 @@
                .or().like(Member::getPhone,pageWrap.getModel().getMemberName()));
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getCompanyNamePath,pageWrap.getModel().getCompanyName());
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberType()),Member::getType,pageWrap.getModel().getMemberType());
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCatePId()),Category::getParentId,pageWrap.getModel().getCatePId());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Cars::getCode,pageWrap.getModel().getCode());
        queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(pageWrap.getModel().getType()!=null,Cars::getType,pageWrap.getModel().getType());