diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ParkService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ParkService.java index 7ec9325..2a4b24a 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ParkService.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/ParkService.java @@ -57,4 +57,10 @@ public interface ParkService extends IService { * @param status 目标状态 */ void updateStatus(String parkId, String status); + + /** + * 树形结构 + * @return + */ + List tree(); } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ParkServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ParkServiceImpl.java index c507057..052eec6 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ParkServiceImpl.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/ParkServiceImpl.java @@ -1,49 +1,38 @@ package jnpf.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import jnpf.entity.*; -import jnpf.mapper.ParkMapper; -import jnpf.service.*; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import jnpf.model.park.*; - -import java.math.BigDecimal; - +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; -import jnpf.permission.model.authorize.AuthorizeConditionModel; -import jnpf.util.GeneraterSwapUtil; -import jnpf.database.model.superQuery.SuperQueryJsonModel; -import jnpf.database.model.superQuery.ConditionJsonModel; -import jnpf.database.model.superQuery.SuperQueryConditionModel; - -import java.lang.reflect.Field; - import com.baomidou.mybatisplus.annotation.TableField; - -import java.util.regex.Pattern; - -import jnpf.model.QueryModel; - -import java.util.stream.Collectors; - -import jnpf.base.model.ColumnDataModel; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jnpf.base.UserInfo; +import jnpf.base.model.ColumnDataModel; import jnpf.database.model.superQuery.SuperJsonModel; +import jnpf.entity.ParkEntity; +import jnpf.mapper.ParkMapper; +import jnpf.model.QueryModel; +import jnpf.model.park.ParkConstant; +import jnpf.model.park.ParkDTO; +import jnpf.model.park.ParkForm; +import jnpf.model.park.ParkPagination; +import jnpf.permission.entity.UserEntity; +import jnpf.service.ParkService; +import jnpf.util.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; - -import java.text.SimpleDateFormat; -import jnpf.util.*; - -import java.util.*; - -import jnpf.base.UserInfo; -import jnpf.permission.entity.UserEntity; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * park @@ -344,4 +333,32 @@ public class ParkServiceImpl extends ServiceImpl impleme entity.setState(status); this.updateById(entity); } + + @Override + public List tree() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(ParkEntity.class) + .isNull(ParkEntity::getDeleteMark); + List list = this.list(wrapper); + if (CollectionUtils.isEmpty(list)) { + return Collections.emptyList(); + } + String pid = "-1"; + Map> map = list.stream() + .map(header -> BeanUtil.copyProperties(header, ParkDTO.class)) + .collect(Collectors.groupingBy(ParkDTO::getPid)); + List root = map.getOrDefault(pid, Collections.emptyList()); + return buildTree(map, root); + } + + private List buildTree(Map> map, List root) { + for (ParkDTO parkDTO : root) { + List list = map.get(parkDTO.getId()); + if (CollectionUtils.isEmpty(list)) { + continue; + } + parkDTO.setChild(list); + buildTree(map, list); + } + return root; + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ContractController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ContractController.java index fff9143..12a87b0 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ContractController.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ContractController.java @@ -84,7 +84,7 @@ public class ContractController { contractMap.put("id", contractMap.get("id")); //副表数据 //子表数据 - List spacecontractList = contractService.getSpacecontractList(entity.getId(), contractPagination); + List spacecontractList = contractService.getSpacecontractList(entity.getContractNumber(), contractPagination); contractMap.put("tableField130", JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(spacecontractList))); realList.add(contractMap); } @@ -368,7 +368,7 @@ public class ContractController { contractMap.put("id", contractMap.get("id")); //副表数据 //子表数据 - List spacecontractList = contractService.getSpacecontractList(entity.getId()); + List spacecontractList = contractService.getSpacecontractList(entity.getContractNumber()); contractMap.put("tableField130", JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(spacecontractList))); contractMap = generaterSwapUtil.swapDataDetail(contractMap, ContractConstant.getFormData(), "582839350958489605", false); return ActionResult.success(contractMap); @@ -392,7 +392,7 @@ public class ContractController { contractMap.put("id", contractMap.get("id")); //副表数据 //子表数据 - List spacecontractList = contractService.getSpacecontractList(entity.getId()); + List spacecontractList = contractService.getSpacecontractList(entity.getContractNumber()); contractMap.put("spacecontractList", JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(spacecontractList))); contractMap = generaterSwapUtil.swapDataForm(contractMap, ContractConstant.getFormData(), ContractConstant.TABLEFIELDKEY, ContractConstant.TABLERENAMES); return ActionResult.success(contractMap); diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ParkController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ParkController.java index 4144ab1..621f2c6 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ParkController.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/ParkController.java @@ -15,16 +15,20 @@ import jnpf.model.park.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + import javax.validation.Valid; import java.util.*; + import jnpf.annotation.JnpfField; import jnpf.base.vo.PageListVO; import jnpf.base.vo.PaginationVO; import jnpf.base.vo.DownloadVO; import jnpf.config.ConfigValueUtil; import jnpf.base.entity.ProvinceEntity; + import java.io.IOException; import java.util.stream.Collectors; + import jnpf.engine.entity.FlowTaskEntity; import jnpf.exception.WorkFlowException; import org.springframework.web.multipart.MultipartFile; @@ -36,7 +40,9 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; + import java.io.File; + import jnpf.onlinedev.model.ExcelImFieldModel; import jnpf.onlinedev.model.OnlineImport.ImportDataModel; import jnpf.onlinedev.model.OnlineImport.ImportFormCheckUniqueModel; @@ -51,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional; /** * park + * * @版本: V3.5 * @版权: 引迈信息技术有限公司(https://www.jnpfsoft.com) * @作者: JNPF开发平台组 @@ -58,7 +65,7 @@ import org.springframework.transaction.annotation.Transactional; */ @Slf4j @RestController -@Tag(name = "park" , description = "example") +@Tag(name = "park", description = "example") @RequestMapping("/api/example/Park") public class ParkController { @@ -72,30 +79,29 @@ public class ParkController { private ParkService parkService; - @Autowired private ConfigValueUtil configValueUtil; /** - * 列表 - * - * @param parkPagination - * @return - */ + * 列表 + * + * @param parkPagination + * @return + */ @Operation(summary = "获取列表") @PostMapping("/getList") - public ActionResult list(@RequestBody ParkPagination parkPagination)throws IOException{ - List list= parkService.getList(parkPagination); - List> realList=new ArrayList<>(); + public ActionResult list(@RequestBody ParkPagination parkPagination) throws IOException { + List list = parkService.getList(parkPagination); + List> realList = new ArrayList<>(); for (ParkEntity entity : list) { - Map parkMap=JsonUtil.entityToMap(entity); - parkMap.put("id", parkMap.get("id")); - //副表数据 - //子表数据 + Map parkMap = JsonUtil.entityToMap(entity); + parkMap.put("id", parkMap.get("id")); + //副表数据 + //子表数据 realList.add(parkMap); } //数据转换 - realList = generaterSwapUtil.swapDataList(realList, ParkConstant.getFormData(), ParkConstant.getColumnData(), parkPagination.getModuleId(),false); + realList = generaterSwapUtil.swapDataList(realList, ParkConstant.getFormData(), ParkConstant.getColumnData(), parkPagination.getModuleId(), false); //返回对象 PageListVO vo = new PageListVO(); @@ -104,90 +110,92 @@ public class ParkController { vo.setPagination(page); return ActionResult.success(vo); } + /** - * 创建 - * - * @param parkForm - * @return - */ + * 创建 + * + * @param parkForm + * @return + */ @PostMapping() @Operation(summary = "创建") public ActionResult create(@RequestBody @Valid ParkForm parkForm) { - String b = parkService.checkForm(parkForm,0); - if (StringUtil.isNotEmpty(b)){ - return ActionResult.fail(b ); + String b = parkService.checkForm(parkForm, 0); + if (StringUtil.isNotEmpty(b)) { + return ActionResult.fail(b); } - try{ - parkService.saveOrUpdate(parkForm, null ,true); - }catch(Exception e){ + try { + parkService.saveOrUpdate(parkForm, null, true); + } catch (Exception e) { return ActionResult.fail("新增数据失败"); } return ActionResult.success("创建成功"); } + /** - * 导出Excel - * - * @return - */ + * 导出Excel + * + * @return + */ @Operation(summary = "导出Excel") @PostMapping("/Actions/Export") public ActionResult Export(@RequestBody ParkPagination parkPagination) throws IOException { - if (StringUtil.isEmpty(parkPagination.getSelectKey())){ + if (StringUtil.isEmpty(parkPagination.getSelectKey())) { return ActionResult.fail("请选择导出字段"); } - List list= parkService.getList(parkPagination); - List> realList=new ArrayList<>(); + List list = parkService.getList(parkPagination); + List> realList = new ArrayList<>(); for (ParkEntity entity : list) { - Map parkMap=JsonUtil.entityToMap(entity); - parkMap.put("id", parkMap.get("id")); - //副表数据 - //子表数据 + Map parkMap = JsonUtil.entityToMap(entity); + parkMap.put("id", parkMap.get("id")); + //副表数据 + //子表数据 realList.add(parkMap); } //数据转换 - realList = generaterSwapUtil.swapDataList(realList, ParkConstant.getFormData(), ParkConstant.getColumnData(), parkPagination.getModuleId(),false); - String[]keys=!StringUtil.isEmpty(parkPagination.getSelectKey())?parkPagination.getSelectKey():new String[0]; - UserInfo userInfo=userProvider.get(); - DownloadVO vo=this.creatModelExcel(configValueUtil.getTemporaryFilePath(),realList,keys,userInfo); + realList = generaterSwapUtil.swapDataList(realList, ParkConstant.getFormData(), ParkConstant.getColumnData(), parkPagination.getModuleId(), false); + String[] keys = !StringUtil.isEmpty(parkPagination.getSelectKey()) ? parkPagination.getSelectKey() : new String[0]; + UserInfo userInfo = userProvider.get(); + DownloadVO vo = this.creatModelExcel(configValueUtil.getTemporaryFilePath(), realList, keys, userInfo); return ActionResult.success(vo); } /** - * 导出表格方法 - */ - public DownloadVO creatModelExcel(String path,List>list,String[]keys,UserInfo userInfo){ - DownloadVO vo=DownloadVO.builder().build(); - List entitys=new ArrayList<>(); - if(keys.length>0){ - for(String key:keys){ - switch(key){ - case "code" : - entitys.add(new ExcelExportEntity("园区编码" ,"code")); - break; - case "name" : - entitys.add(new ExcelExportEntity("园区名称" ,"name")); - break; - case "description" : - entitys.add(new ExcelExportEntity("园区描述" ,"description")); - break; - case "remark" : - entitys.add(new ExcelExportEntity("备注" ,"remark")); - break; - case "type" : - entitys.add(new ExcelExportEntity("类型" ,"type")); - break; + * 导出表格方法 + */ + public DownloadVO creatModelExcel(String path, List> list, String[] keys, UserInfo userInfo) { + DownloadVO vo = DownloadVO.builder().build(); + List entitys = new ArrayList<>(); + if (keys.length > 0) { + for (String key : keys) { + switch (key) { + case "code": + entitys.add(new ExcelExportEntity("园区编码", "code")); + break; + case "name": + entitys.add(new ExcelExportEntity("园区名称", "name")); + break; + case "description": + entitys.add(new ExcelExportEntity("园区描述", "description")); + break; + case "remark": + entitys.add(new ExcelExportEntity("备注", "remark")); + break; + case "type": + entitys.add(new ExcelExportEntity("类型", "type")); + break; default: - break; + break; } } } ExportParams exportParams = new ExportParams(null, "表单信息"); exportParams.setType(ExcelType.XSSF); - try{ + try { @Cleanup Workbook workbook = new HSSFWorkbook(); - if (entitys.size()>0){ - if (list.size()==0){ + if (entitys.size() > 0) { + if (list.size() == 0) { list.add(new HashMap<>()); } //去除空数据 @@ -197,8 +205,8 @@ public class ParkController { for (String key : keys) { //子表 if (key.toLowerCase().startsWith("tablefield")) { - String tableField = key.substring(0, key.indexOf("-" )); - String field = key.substring(key.indexOf("-" ) + 1); + String tableField = key.substring(0, key.indexOf("-")); + String field = key.substring(key.indexOf("-") + 1); Object o = map.get(tableField); if (o != null) { List> childList = (List>) o; @@ -224,7 +232,7 @@ public class ParkController { List complexHeaderList = columnDataModel.getComplexHeaderList(); if (!Objects.equals(columnDataModel.getType(), 3) && !Objects.equals(columnDataModel.getType(), 5)) { entitys = VisualUtils.complexHeaderHandel(entitys, complexHeaderList); - dataList = VisualUtils.complexHeaderDataHandel(dataList, complexHeaderList); + dataList = VisualUtils.complexHeaderDataHandel(dataList, complexHeaderList); } workbook = ExcelExportUtil.exportExcel(exportParams, entitys, dataList); @@ -241,6 +249,7 @@ public class ParkController { } return vo; } + @Operation(summary = "上传文件") @PostMapping("/Uploader") public ActionResult Uploader() { @@ -260,67 +269,67 @@ public class ParkController { } /** - * 模板下载 - * - * @return - */ + * 模板下载 + * + * @return + */ @Operation(summary = "模板下载") @GetMapping("/TemplateDownload") - public ActionResult TemplateDownload(){ + public ActionResult TemplateDownload() { DownloadVO vo = DownloadVO.builder().build(); UserInfo userInfo = userProvider.get(); Map dataMap = new HashMap<>(); //主表对象 List entitys = new ArrayList<>(); //以下添加字段 - entitys.add(new ExcelExportEntity("园区编码" ,"code")); - entitys.add(new ExcelExportEntity("园区名称" ,"name")); + entitys.add(new ExcelExportEntity("园区编码", "code")); + entitys.add(new ExcelExportEntity("园区名称", "name")); List> list = new ArrayList<>(); list.add(dataMap); ExportParams exportParams = new ExportParams(null, "园区管理模板"); exportParams.setType(ExcelType.XSSF); - try{ - @Cleanup Workbook workbook = new HSSFWorkbook(); - if (entitys.size()>0){ - if (list.size()==0){ - list.add(new HashMap<>()); - } - //复杂表头-表头和数据处理 - ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(ParkConstant.getColumnData(), ColumnDataModel.class); - List complexHeaderList = columnDataModel.getComplexHeaderList(); - if (!Objects.equals(columnDataModel.getType(), 3) && !Objects.equals(columnDataModel.getType(), 5)) { - entitys = VisualUtils.complexHeaderHandel(entitys, complexHeaderList); - list = VisualUtils.complexHeaderDataHandel(list, complexHeaderList); - } - workbook = ExcelExportUtil.exportExcel(exportParams, entitys, list); - } - String fileName = "园区管理模板" + DateUtil.dateNow("yyyyMMddHHmmss") + ".xlsx"; - MultipartFile multipartFile = ExcelUtil.workbookToCommonsMultipartFile(workbook, fileName); + try { + @Cleanup Workbook workbook = new HSSFWorkbook(); + if (entitys.size() > 0) { + if (list.size() == 0) { + list.add(new HashMap<>()); + } + //复杂表头-表头和数据处理 + ColumnDataModel columnDataModel = JsonUtil.getJsonToBean(ParkConstant.getColumnData(), ColumnDataModel.class); + List complexHeaderList = columnDataModel.getComplexHeaderList(); + if (!Objects.equals(columnDataModel.getType(), 3) && !Objects.equals(columnDataModel.getType(), 5)) { + entitys = VisualUtils.complexHeaderHandel(entitys, complexHeaderList); + list = VisualUtils.complexHeaderDataHandel(list, complexHeaderList); + } + workbook = ExcelExportUtil.exportExcel(exportParams, entitys, list); + } + String fileName = "园区管理模板" + DateUtil.dateNow("yyyyMMddHHmmss") + ".xlsx"; + MultipartFile multipartFile = ExcelUtil.workbookToCommonsMultipartFile(workbook, fileName); String temporaryFilePath = configValueUtil.getTemporaryFilePath(); FileInfo fileInfo = FileUploadUtils.uploadFile(multipartFile, temporaryFilePath, fileName); - vo.setName(fileInfo.getFilename()); - vo.setUrl(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "Temporary") + "&name=" + fileName); + vo.setName(fileInfo.getFilename()); + vo.setUrl(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "Temporary") + "&name=" + fileName); } catch (Exception e) { - log.error("模板信息导出Excel错误:{}", e.getMessage()); - e.printStackTrace(); + log.error("模板信息导出Excel错误:{}", e.getMessage()); + e.printStackTrace(); } return ActionResult.success(vo); } /** - * 导入预览 - * - * @return - */ - @Operation(summary = "导入预览" ) + * 导入预览 + * + * @return + */ + @Operation(summary = "导入预览") @GetMapping("/ImportPreview") public ActionResult> ImportPreview(String fileName) throws Exception { Map headAndDataMap = new HashMap<>(2); - String filePath = FileUploadUtils.getLocalBasePath() + configValueUtil.getTemporaryFilePath(); - FileUploadUtils.downLocal(configValueUtil.getTemporaryFilePath(), filePath, fileName); + String filePath = FileUploadUtils.getLocalBasePath() + configValueUtil.getTemporaryFilePath(); + FileUploadUtils.downLocal(configValueUtil.getTemporaryFilePath(), filePath, fileName); File temporary = new File(XSSEscape.escapePath(filePath + fileName)); - int headerRowIndex = 1; + int headerRowIndex = 1; ImportParams params = new ImportParams(); params.setTitleRows(0); params.setHeadRows(headerRowIndex); @@ -329,11 +338,11 @@ public class ParkController { List excelDataList = ExcelImportUtil.importExcel(temporary, ParkExcelVO.class, params); // 导入字段 List columns = new ArrayList<>(); - columns.add(new ExcelImFieldModel("code","园区编码")); - columns.add(new ExcelImFieldModel("name","园区名称")); - headAndDataMap.put("dataRow" , JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(excelDataList))); - headAndDataMap.put("headerRow" , JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(columns))); - } catch (Exception e){ + columns.add(new ExcelImFieldModel("code", "园区编码")); + columns.add(new ExcelImFieldModel("name", "园区名称")); + headAndDataMap.put("dataRow", JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(excelDataList))); + headAndDataMap.put("headerRow", JsonUtil.getJsonToList(JsonUtil.getListToJsonArray(columns))); + } catch (Exception e) { e.printStackTrace(); return ActionResult.fail("表头名称不可更改,表头行不能删除"); } @@ -341,170 +350,185 @@ public class ParkController { } /** - * 导入数据 - * - * @return - */ - @Operation(summary = "导入数据" ) + * 导入数据 + * + * @return + */ + @Operation(summary = "导入数据") @PostMapping("/ImportData") public ActionResult ImportData(@RequestBody VisualImportModel visualImportModel) throws Exception { - List> listData=new ArrayList<>(); - for(Map map : visualImportModel.getList()){ + List> listData = new ArrayList<>(); + for (Map map : visualImportModel.getList()) { listData.add(map); } ImportFormCheckUniqueModel uniqueModel = new ImportFormCheckUniqueModel(); uniqueModel.setDbLinkId(ParkConstant.DBLINKID); uniqueModel.setUpdate(Objects.equals("1", "2")); - ExcelImportModel excelImportModel = generaterSwapUtil.importData(ParkConstant.getFormData(),listData,uniqueModel, - ParkConstant.TABLEFIELDKEY,ParkConstant.getTableList()); + ExcelImportModel excelImportModel = generaterSwapUtil.importData(ParkConstant.getFormData(), listData, uniqueModel, + ParkConstant.TABLEFIELDKEY, ParkConstant.getTableList()); List importDataModel = uniqueModel.getImportDataModel(); for (ImportDataModel model : importDataModel) { String id = model.getId(); Map result = model.getResultData(); - if(StringUtil.isNotEmpty(id)){ - update(id, JsonUtil.getJsonToBean(result,ParkForm.class), true); - }else { - create( JsonUtil.getJsonToBean(result,ParkForm.class)); + if (StringUtil.isNotEmpty(id)) { + update(id, JsonUtil.getJsonToBean(result, ParkForm.class), true); + } else { + create(JsonUtil.getJsonToBean(result, ParkForm.class)); } } return ActionResult.success(excelImportModel); } /** - * 导出异常报告 - * - * @return - */ + * 导出异常报告 + * + * @return + */ @Operation(summary = "导出异常报告") @PostMapping("/ImportExceptionData") public ActionResult ImportExceptionData(@RequestBody VisualImportModel visualImportModel) { - DownloadVO vo=DownloadVO.builder().build(); + DownloadVO vo = DownloadVO.builder().build(); List parkVOList = JsonUtil.getJsonToList(visualImportModel.getList(), ParkExcelErrorVO.class); UserInfo userInfo = userProvider.get(); - try{ - @Cleanup Workbook workbook = new HSSFWorkbook(); - ExportParams exportParams = new ExportParams(null, "错误报告"); - exportParams.setType(ExcelType.XSSF); - workbook = ExcelExportUtil.exportExcel(exportParams, - ParkExcelErrorVO.class, parkVOList); + try { + @Cleanup Workbook workbook = new HSSFWorkbook(); + ExportParams exportParams = new ExportParams(null, "错误报告"); + exportParams.setType(ExcelType.XSSF); + workbook = ExcelExportUtil.exportExcel(exportParams, + ParkExcelErrorVO.class, parkVOList); - String fileName = "错误报告" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx"; - MultipartFile multipartFile = ExcelUtil.workbookToCommonsMultipartFile(workbook, fileName); + String fileName = "错误报告" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx"; + MultipartFile multipartFile = ExcelUtil.workbookToCommonsMultipartFile(workbook, fileName); String temporaryFilePath = configValueUtil.getTemporaryFilePath(); FileInfo fileInfo = FileUploadUtils.uploadFile(multipartFile, temporaryFilePath, fileName); - vo.setName(fileInfo.getFilename()); - vo.setUrl(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "Temporary") + "&name=" + fileName); + vo.setName(fileInfo.getFilename()); + vo.setUrl(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "Temporary") + "&name=" + fileName); } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } return ActionResult.success(vo); } + /** - * 批量删除 - * @param ids - * @return - */ + * 批量删除 + * + * @param ids + * @return + */ @DeleteMapping("/batchRemove") @Transactional @Operation(summary = "批量删除") - public ActionResult batchRemove(@RequestBody String ids){ + public ActionResult batchRemove(@RequestBody String ids) { List idList = JsonUtil.getJsonToList(ids, String.class); - int i =0; - for (String allId : idList){ + int i = 0; + for (String allId : idList) { this.delete(allId); i++; } - if (i == 0 ){ - return ActionResult.fail("删除失败"); + if (i == 0) { + return ActionResult.fail("删除失败"); } return ActionResult.success("删除成功"); } + /** - * 编辑 - * @param id - * @param parkForm - * @return - */ + * 编辑 + * + * @param id + * @param parkForm + * @return + */ @PutMapping("/{id}") @Operation(summary = "更新") - public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid ParkForm parkForm, - @RequestParam(value = "isImport", required = false) boolean isImport){ + public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid ParkForm parkForm, + @RequestParam(value = "isImport", required = false) boolean isImport) { parkForm.setId(id); if (!isImport) { - String b = parkService.checkForm(parkForm,1); - if (StringUtil.isNotEmpty(b)){ - return ActionResult.fail(b ); + String b = parkService.checkForm(parkForm, 1); + if (StringUtil.isNotEmpty(b)) { + return ActionResult.fail(b); } } - ParkEntity entity= parkService.getInfo(id); - if(entity!=null){ - try{ - parkService.saveOrUpdate(parkForm,id,false); - }catch(Exception e){ + ParkEntity entity = parkService.getInfo(id); + if (entity != null) { + try { + parkService.saveOrUpdate(parkForm, id, false); + } catch (Exception e) { return ActionResult.fail("修改数据失败"); } return ActionResult.success("更新成功"); - }else{ + } else { return ActionResult.fail("更新失败,数据不存在"); } } + /** - * 删除 - * @param id - * @return - */ + * 删除 + * + * @param id + * @return + */ @Operation(summary = "删除") @DeleteMapping("/{id}") @Transactional - public ActionResult delete(@PathVariable("id") String id){ - ParkEntity entity= parkService.getInfo(id); - if(entity!=null){ + public ActionResult delete(@PathVariable("id") String id) { + ParkEntity entity = parkService.getInfo(id); + if (entity != null) { //假删除 entity.setDeleteMark(1); - parkService.update(id,entity); + parkService.update(id, entity); } return ActionResult.success("删除成功"); } + /** - * 表单信息(详情页) - * 详情页面使用-转换数据 - * @param id - * @return - */ + * 表单信息(详情页) + * 详情页面使用-转换数据 + * + * @param id + * @return + */ @Operation(summary = "表单信息(详情页)") @GetMapping("/detail/{id}") - public ActionResult detailInfo(@PathVariable("id") String id){ - ParkEntity entity= parkService.getInfo(id); - if(entity==null){ + public ActionResult detailInfo(@PathVariable("id") String id) { + ParkEntity entity = parkService.getInfo(id); + if (entity == null) { return ActionResult.fail("表单数据不存在!"); } - Map parkMap=JsonUtil.entityToMap(entity); + Map parkMap = JsonUtil.entityToMap(entity); parkMap.put("id", parkMap.get("id")); //副表数据 //子表数据 - parkMap = generaterSwapUtil.swapDataDetail(parkMap,ParkConstant.getFormData(),"581462239718932549",false); + parkMap = generaterSwapUtil.swapDataDetail(parkMap, ParkConstant.getFormData(), "581462239718932549", false); return ActionResult.success(parkMap); } + /** - * 获取详情(编辑页) - * 编辑页面使用-不转换数据 - * @param id - * @return - */ + * 获取详情(编辑页) + * 编辑页面使用-不转换数据 + * + * @param id + * @return + */ @Operation(summary = "信息") @GetMapping("/{id}") - public ActionResult info(@PathVariable("id") String id){ - ParkEntity entity= parkService.getInfo(id); - if(entity==null){ + public ActionResult info(@PathVariable("id") String id) { + ParkEntity entity = parkService.getInfo(id); + if (entity == null) { return ActionResult.fail("表单数据不存在!"); } - Map parkMap=JsonUtil.entityToMap(entity); + Map parkMap = JsonUtil.entityToMap(entity); parkMap.put("id", parkMap.get("id")); //副表数据 //子表数据 - parkMap = generaterSwapUtil.swapDataForm(parkMap,ParkConstant.getFormData(),ParkConstant.TABLEFIELDKEY,ParkConstant.TABLERENAMES); + parkMap = generaterSwapUtil.swapDataForm(parkMap, ParkConstant.getFormData(), ParkConstant.TABLEFIELDKEY, ParkConstant.TABLERENAMES); return ActionResult.success(parkMap); } + @Operation(summary = "数据树形结构") + @GetMapping("/tree") + public ActionResult tree() { + return ActionResult.success(parkService.tree()); + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/park/ParkDTO.java b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/park/ParkDTO.java new file mode 100644 index 0000000..24755c5 --- /dev/null +++ b/jnpf-java-boot/jnpf-example/jnpf-example-entity/src/main/java/jnpf/model/park/ParkDTO.java @@ -0,0 +1,56 @@ +package jnpf.model.park; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@Data +public class ParkDTO implements Serializable { + /** + * id + */ + private String id; + /** + * 编码 + */ + private String code; + /** + * 名称 + */ + private String name; + /** + * 父id + */ + private String pid; + /** + * 描述 + */ + private String description; + /** + * 类型(1,园区 2,区域 3,空间) + */ + private String type; + /** + * 空间数量 + */ + private BigDecimal spaceNum; + /** + * 空间面积 + */ + private BigDecimal spaceArea; + /** + * 空间类型(10 :办公室 20:加工车间) + */ + private String spaceType; + /** + * 状态(10 待租、20 已租、30 装修、40 预约) + */ + private String state; + + /** + * 子集 + */ + private List child; +} diff --git a/jnpf-java-boot/jnpf-web/src/views/scm/contract/form.vue b/jnpf-java-boot/jnpf-web/src/views/scm/contract/form.vue index 9d8820c..86f1c7a 100644 --- a/jnpf-java-boot/jnpf-web/src/views/scm/contract/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/scm/contract/form.vue @@ -443,6 +443,7 @@ export default { ], contactsPhone: [ { + required: true, pattern: /^1[3456789]\d{9}$|^0\d{2,3}-?\d{7,8}$/, message: '请输入正确的联系方式', trigger: 'blur'