server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -137,6 +137,8 @@ public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ; public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ; public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ; public static final String MYSQL_BACKUP_CDOE ="MYSQL_BACKUP_CDOE" ; public static final String MYSQL_BACKUP_DIR ="MYSQL_BACKUP_DIR" ; public static boolean DEALING_HK_SYNCPRIVILEGE= false; public static boolean DEALING_HK_SYNCDEVICE = false; public static boolean DEALING_HK_SYNCPLATFORM = false; server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java
@@ -1,6 +1,8 @@ package com.doumee.api; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Date; import com.doumee.core.utils.DateUtil; import com.doumee.service.business.PlatformJobService; @@ -12,7 +14,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -30,6 +35,8 @@ @Autowired private PlatformJobService platformJobService; @Autowired private SystemDictDataBiz systemDictDataBiz; @ApiOperation("数据库备份,保留最近7个备份sql") @@ -37,11 +44,26 @@ public ApiResponse backupDatabase() { try { String timestamp = DateUtil.getNowLongTime(); String path = "/usr/local/jars/db/"; // String path = "/usr/local/jars/db/"; // String backupPath = path + timestamp + ".sql"; String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_DIR).getCode(); String code = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_CDOE).getCode() ; String backupPath = path + timestamp + ".sql"; // 使用mysqldump命令进行数据库备份 Process process = Runtime.getRuntime().exec(new String[]{"mysqldump ", "-u", "root", "-p","Atwl@2024", "antaiwuliu", "-r", backupPath}); process.waitFor(); code= code.replace("${param}",backupPath); log.error("数据库备份================: " + code); ProcessBuilder builder = new ProcessBuilder(code); // 重定向错误流到标准输出流 builder.redirectErrorStream(true); // stdout Process process = builder.start(); new Thread(new ProcessHandleRunnable(process)).start(); process.waitFor(); // wait if needed /* // 使用mysqldump命令进行数据库备份 Process process = Runtime.getRuntime().exec(code); process.getErrorStream(); process.getInputStream(); process.waitFor();*/ // 检查备份是否成功 if (new File(backupPath).exists()) { @@ -58,6 +80,39 @@ return ApiResponse.failed("数据库备份失败" ); } static class ProcessHandleRunnable implements Runnable { private Process process; public ProcessHandleRunnable(Process process) { this.process = process; } public void run() { BufferedReader br = null; InputStreamReader reader = null; try { System.out.println("start run..."); reader = new InputStreamReader(process.getInputStream()); br = new BufferedReader(reader); String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } System.out.println("stop run..."); } catch (IOException ex) { ex.printStackTrace(); } finally { try { if (br != null) br.close(); if (reader != null) reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * @param path */ server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/CategoryCloudController.java
@@ -8,7 +8,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.Cars; import com.doumee.dao.business.model.Category; import com.doumee.dao.business.model.Company; import com.doumee.service.business.CategoryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -88,6 +90,13 @@ public void exportExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ ExcelExporter.build(Category.class).export(categoryService.findPage(pageWrap).getRecords(), "分类信息表", response); } @ApiOperation("导出二级分类数据Excel") @PostMapping("/exportChildExcel") @CloudRequiredPermission("business:category:exportExcel") public void exportChildExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ // pageWrap.getModel().setType(Constants.ONE); ExcelExporter.build(Category.class).export(categoryService.findChileList(pageWrap.getModel()), "车辆分类信息表", response); } @ApiOperation("根据ID查询") @GetMapping("/{id}") @@ -106,4 +115,6 @@ category.setType(type); return ApiResponse.success(categoryService.findList(category)); } } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -25,135 +25,150 @@ @TableId(value = "id",type = IdType.AUTO) @ApiModelProperty(value = "主键", example = "1") @ExcelColumn(name="主键") // @ExcelColumn(name="主键") private Integer id; @ApiModelProperty(value = "创建人编码") @ExcelColumn(name="创建人编码") //@ExcelColumn(name="创建人编码") private Integer creator; @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间") //@ExcelColumn(name="创建时间") private Date createDate; @ApiModelProperty(value = "更新人编码") @ExcelColumn(name="更新人编码") //@ExcelColumn(name="更新人编码") private Integer edirot; @ApiModelProperty(value = "更新时间") @ExcelColumn(name="更新时间") //@ExcelColumn(name="更新时间") private Date editDate; @ApiModelProperty(value = "授权开始时间") @ExcelColumn(name="授权开始时间") //@ExcelColumn(name="授权开始时间") @ExcelColumn(name="开始时间" ,index = 10,width = 12) private Date startTime; @ApiModelProperty(value = "授权结束时间") @ExcelColumn(name="授权结束时间") //@ExcelColumn(name="授权结束时间") @ExcelColumn(name="结束时间" ,index = 11,width = 12) private Date endTime; @ApiModelProperty(value = "最后一次进厂时间") @ExcelColumn(name="最后一次进厂时间") //@ExcelColumn(name="最后一次进厂时间") private Date lastInDate; @ApiModelProperty(value = "是否删除0否 1是", example = "1") @ExcelColumn(name="是否删除0否 1是") //@ExcelColumn(name="是否删除0否 1是") private Integer isdeleted; @ApiModelProperty(value = "授权时间类型 0长期有效 1自定义 2车主有效期", example = "1") @ExcelColumn(name="授权时间类型 0长期有效 1自定义 2车主有效期") //@ExcelColumn(name="授权时间类型 0长期有效 1自定义 2车主有效期") private Integer authTimeType; @ApiModelProperty(value = "备注") @ExcelColumn(name="备注") //@ExcelColumn(name="备注") private String remark; @ApiModelProperty(value = "预约标识", example = "1") @ExcelColumn(name="预约标识") //@ExcelColumn(name="预约标识") private String hkId; @ApiModelProperty(value = "排序码", example = "1") @ExcelColumn(name="排序码") //@ExcelColumn(name="排序码") private Integer sortnum; @ApiModelProperty(value = "车牌号") @ExcelColumn(name="车牌号") @ExcelColumn(name="车牌号" ,index = 1,width = 8) private String code; @ApiModelProperty(value = "授权停车编码集合(关联parks)", example = "1") @ExcelColumn(name="授权停车编码集合(关联parks)") //@ExcelColumn(name="授权停车编码集合(关联parks)") private String parkId; @ApiModelProperty(value = "海康同步状态 0未同步 1已同步", example = "1") @ExcelColumn(name="海康同步状态 0未同步 1已同步") //@ExcelColumn(name="海康同步状态 0未同步 1已同步") private Integer hkStatus; @ApiModelProperty(value = "海康最近同步时间") @ExcelColumn(name="海康最近同步时间") //@ExcelColumn(name="海康最近同步时间") private Date hkDate; @ApiModelProperty(value = "归属人编码", example = "1") @ExcelColumn(name="归属人编码") //@ExcelColumn(name="归属人编码") private Integer memberId; @ApiModelProperty(value = "归属人ERP编码") @ExcelColumn(name="归属人ERP编码") //@ExcelColumn(name="归属人ERP编码") private String memberUserId; @ApiModelProperty(value = "关联EPR标识") @ExcelColumn(name="关联EPR标识") //@ExcelColumn(name="关联EPR标识") private String erpId; @ApiModelProperty(value = "状态 0禁用 1启用", example = "1") @ExcelColumn(name="状态 0禁用 1启用") //@ExcelColumn(name="状态 0禁用 1启用") private Integer status; @ApiModelProperty(value = "状态 0不在园 1在园", example = "1") @ExcelColumn(name="状态 0不在园 1在园") //@ExcelColumn(name="状态 0不在园 1在园") private Integer inStatus; @ApiModelProperty(value = "授权状态 0否 1是", example = "1") @ExcelColumn(name="授权状态 0否 1是") //@ExcelColumn(name="授权状态 0否 1是") private Integer authStatus; @ApiModelProperty(value = "所属组织主键(关联company)", example = "1") @ExcelColumn(name="所属组织主键(关联company)") //@ExcelColumn(name="所属组织主键(关联company)") private Integer groupId; @ApiModelProperty(value = "类型 0安泰公务车 1安泰自有物流车 2其它", example = "1") @ExcelColumn(name="类型 0安泰公务车 1安泰自有物流车 2其它") @ExcelColumn(name="备注" ,index = 2,width = 8,valueMapping ="0=安泰公务车;1=安泰自有物流车;2=其他" ) private Integer type; @ApiModelProperty(value = "所属分类编码", example = "1") @ExcelColumn(name="所属分类编码") //@ExcelColumn(name="所属分类编码") private Integer cateId; @ApiModelProperty(value = "停车场名称集合", example = "1") @ExcelColumn(name="停车场名称集合") //@ExcelColumn(name="停车场名称集合") @TableField(exist = false) @ExcelColumn(name="停车场名称集合" ,index = 9,width = 10) private String parksName; @ApiModelProperty(value = "编辑人姓名", example = "1") @ExcelColumn(name="编辑人姓名") //@ExcelColumn(name="编辑人姓名") @TableField(exist = false) private String editorName; @ApiModelProperty(value = "用户类型 0劳务访客 1普通访客 2内部人员", example = "1") @ExcelColumn(name="用户类型 0劳务访客 1普通访客 2内部人员") //@ExcelColumn(name="用户类型 0劳务访客 1普通访客 2内部人员") @TableField(exist = false) private Integer memberType; @ApiModelProperty(value = "姓名", example = "1") @ExcelColumn(name="姓名") //@ExcelColumn(name="姓名") @TableField(exist = false) @ExcelColumn(name="车主" ,index = 5,width = 8) private String memberName; @ApiModelProperty(value = "车主海康编码", example = "1") @TableField(exist = false) private String memberHkId; @ApiModelProperty(value = "手机号", example = "1") @ExcelColumn(name="手机号") //@ExcelColumn(name="手机号") @TableField(exist = false) @ExcelColumn(name="手机号" ,index = 6,width = 8) private String memberPhone; @ApiModelProperty(value = "性别", example = "1") //@ExcelColumn(name="手机号") @TableField(exist = false) @ExcelColumn(name="性别" ,index = 7,width = 5,valueMapping = "0=未知;1=男;2=女") private Integer memberSex; @ApiModelProperty(value = "身份证号", example = "1") //@ExcelColumn(name="手机号") @TableField(exist = false) @ExcelColumn(name="身份证号" ,index = 8,width = 10) private String memberCard; @ApiModelProperty(value = "部门", example = "1") @ExcelColumn(name="部门") //@ExcelColumn(name="部门") @TableField(exist = false) private String companyName; @ApiModelProperty(value = "车主是否删除", example = "1") @@ -180,6 +195,11 @@ @TableField(exist = false) private String cateName; @ApiModelProperty(value = "所属分类", example = "1") @TableField(exist = false) @ExcelColumn(name="所属分类" ,index = 3,width = 10) private String groupCateName; @ApiModelProperty(value = "一级分类名称", example = "1") @TableField(exist = false) private String catePName; @@ -188,13 +208,14 @@ private int isnew; @ApiModelProperty(value = "车辆部门名称", example = "1") @ExcelColumn(name="车辆组织部门名称") //@ExcelColumn(name="车辆组织部门名称") @TableField(exist = false) private String carCompanyName; @ApiModelProperty(value = "车辆部门全路径名称", example = "1") @ExcelColumn(name="车辆部门全路径名称") //@ExcelColumn(name="车辆部门全路径名称") @TableField(exist = false) @ExcelColumn(name="所属组织" ,index = 4,width = 15) private String carCompanyNamePath; @ApiModelProperty(value = "车主对象", example = "1") @TableField(exist = false) server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -25,56 +25,64 @@ @TableId(type = IdType.AUTO) @ApiModelProperty(value = "主键") @ExcelColumn(name="主键") //@ExcelColumn(name="主键") private Integer id; @ApiModelProperty(value = "创建人编码") @ExcelColumn(name="创建人编码") //@ExcelColumn(name="创建人编码") private Integer creator; @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间") //@ExcelColumn(name="创建时间") private Date createDate; @ApiModelProperty(value = "更新人编码") @ExcelColumn(name="更新人编码") //@ExcelColumn(name="更新人编码") private Integer editor; @ApiModelProperty(value = "更新时间") @ExcelColumn(name="更新时间") //@ExcelColumn(name="更新时间") private Date editDate; @ApiModelProperty(value = "是否删除0否 1是") @ExcelColumn(name="是否删除0否 1是") //@ExcelColumn(name="是否删除0否 1是") private Integer isdeleted; @ApiModelProperty(value = "名称") @ExcelColumn(name="名称") @ExcelColumn(name="二级分类名称",index = 2,width = 12) private String name; @ApiModelProperty(value = "备注") @ExcelColumn(name="备注") //@ExcelColumn(name="备注") private String remark; @ApiModelProperty(value = "状态 0启用 1禁用") @ExcelColumn(name="状态 0启用 1禁用") //@ExcelColumn(name="状态 0启用 1禁用") private Integer status; @ApiModelProperty(value = "排序码") @ExcelColumn(name="排序码") //@ExcelColumn(name="排序码") private Integer sortnum; @ApiModelProperty(value = "图标") @ExcelColumn(name="图标") //@ExcelColumn(name="图标") private String imgurl; @ApiModelProperty(value = "类型 0公司类型 1车辆类型") @ExcelColumn(name="类型 0公司类型 1车辆类型") //@ExcelColumn(name="类型 0公司类型 1车辆类型") private Integer type; @ApiModelProperty(value = "父级编码(自关联)") @ExcelColumn(name="父级编码(自关联)") //@ExcelColumn(name="父级编码(自关联)") private Integer parentId; @ApiModelProperty(value = "父级名称 ") @TableField(exist = false) @ExcelColumn(name="一级分类名称",index = 1,width = 12) private String parentName; @ApiModelProperty(value = "组合名称 ") @TableField(exist = false) @ExcelColumn(name="组合名称",index = 3,width = 20) private String groupName; @ApiModelProperty(value = "子集分类") @TableField(exist = false) server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CategoryService.java
@@ -101,4 +101,6 @@ * @return long */ long count(Category category); List<Category> findChileList(Category model); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -370,6 +370,8 @@ queryWrapper.selectAs(Member::getName,Cars::getMemberName); queryWrapper.selectAs(SystemUser::getRealname,Cars::getEditorName); queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone); queryWrapper.selectAs(Member::getSex,Cars::getMemberSex); queryWrapper.selectAs(Member::getIdcardDecode,Cars::getMemberCard); queryWrapper.selectAs(Company::getCompanyNamePath,Cars::getCompanyName); queryWrapper.selectAs(Category::getParentId,Cars::getCatePId); queryWrapper.selectAs(Category::getName,Cars::getCateName); @@ -386,6 +388,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().getCateId()),Category::getId,pageWrap.getModel().getCateId()); 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); @@ -417,22 +420,28 @@ .in(ParkBook::getCarCode,codes) .eq(ParkBook::getIsdeleted,Constants.ZERO) ); for(Cars cars :result.getRecords()){ cars.setParkBookList(getParkbookListByCode(cars.getCode(),parkBooks)); if(StringUtils.isNotBlank(cars.getCateName())){ cars.setGroupCateName(StringUtils.defaultString(cars.getCatePName(),"") + "/" + StringUtils.defaultString(cars.getCateName(),"")); } cars.setParkBookList(getParkbookListByCode(cars,parkBooks)); } } return PageData.from(result); } private List<ParkBook> getParkbookListByCode(String code, List<ParkBook> parkBooks) { private List<ParkBook> getParkbookListByCode(Cars car, List<ParkBook> parkBooks) { List<ParkBook> list =null; String name = ""; for(ParkBook p : parkBooks){ if(StringUtils.equals(p.getCarCode(),code)){ if(StringUtils.equals(p.getCarCode(),car.getCode())){ if(list == null){ list = new ArrayList<>(); } name += p.getParksName(); list.add(p); } } car.setParksName(name); return list; } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -14,11 +14,13 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; @@ -155,6 +157,36 @@ QueryWrapper<Category> wrapper = new QueryWrapper<>(category); return categoryMapper.selectCount(wrapper); } @Override public List<Category> findChileList(Category model) { List<Category> list =findList(model); List<Category> data = new ArrayList<>(); if(list!=null){ for(Category category : list){ if(category.getParentId()!=null){ Category pcate = getParentById(category.getParentId(),list); if(pcate!=null){ category.setParentName(StringUtils.defaultString(pcate.getName(),"")); category.setName(StringUtils.defaultString(category.getName(),"")); category.setGroupName( category.getParentName()+"/"+category.getName()); data.add(category); } } } } return data; } private Category getParentById(Integer parentId, List<Category> list) { if(list!=null){ for(Category category : list){ if(Constants.equalsInteger(parentId,category.getId())){ return category; } } } return null; } private void checkUnique(Category category){ QueryWrapper<Category> wrapper = new QueryWrapper<>(); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java
@@ -247,11 +247,11 @@ MPJLambdaWrapper<ParkBook> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(ParkBook.class); queryWrapper.selectAs(Parks::getName,Cars::getParksName); queryWrapper.selectAs(Member::getType,Cars::getMemberType); queryWrapper.selectAs(Member::getName,Cars::getMemberName); queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone); queryWrapper.selectAs(Company::getName,Cars::getCompanyName); queryWrapper.selectAs(Parks::getName,ParkBook::getParksName); queryWrapper.selectAs(Member::getType,ParkBook::getMemberType); queryWrapper.selectAs(Member::getName,ParkBook::getMemberName); queryWrapper.selectAs(Member::getPhone,ParkBook::getMemberPhone); queryWrapper.selectAs(Company::getName,ParkBook::getCompanyName); queryWrapper.leftJoin(Parks.class,Parks::getId,ParkBook::getParkId); queryWrapper.leftJoin(Member.class,Member::getId,ParkBook::getMemberId); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -288,7 +288,7 @@ Collections.sort(jobList, new Comparator<Platform>() { @Override public int compare(Platform o1, Platform o2) { return Constants.formatBigdecimal(o2.getWorkCountTime())-Constants.formatBigdecimal(o1.getWorkCountTime()); return Constants.formatBigdecimal(o2.getWorkCountTime()).intValue() - Constants.formatBigdecimal(o1.getWorkCountTime()).intValue(); } }); for(Platform model : jobList){