From e5fb24c1fbfef2a7562963ab6df69090410c89b5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 25 九月 2024 16:06:51 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java | 62 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 1 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java index e23c6c7..3a3dc37 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/RouteController.java @@ -2,14 +2,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zy.acs.common.constant.CommonConstant; +import com.zy.acs.common.utils.Utils; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; -import com.zy.acs.manager.common.utils.ExcelUtil; import com.zy.acs.manager.common.annotation.OperationLog; import com.zy.acs.manager.common.domain.BaseParam; import com.zy.acs.manager.common.domain.KeyValVo; import com.zy.acs.manager.common.domain.PageParam; +import com.zy.acs.manager.common.domain.RouteExcel; +import com.zy.acs.manager.common.utils.ExcelUtil; +import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.entity.Route; +import com.zy.acs.manager.manager.service.CodeGapService; +import com.zy.acs.manager.manager.service.CodeService; import com.zy.acs.manager.manager.service.RouteService; import com.zy.acs.manager.system.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; @@ -18,6 +24,8 @@ import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; @RestController @RequestMapping("/api") @@ -25,6 +33,10 @@ @Autowired private RouteService routeService; + @Autowired + private CodeService codeService; + @Autowired + private CodeGapService codeGapService; @PreAuthorize("hasAuthority('manager:route:list')") @PostMapping("/route/page") @@ -56,6 +68,21 @@ @OperationLog("Create Route") @PostMapping("/route/save") public R save(@RequestBody Route route) { + if (route.getStartCode() == null || route.getEndCode() == null) { + return R.error("Save Fail"); + } + if (route.getStartCode().equals(route.getEndCode())) { + return R.error("Save Fail"); + } + if (routeService.count(new LambdaQueryWrapper<Route>() + .eq(Route::getStartCode, route.getStartCode()) + .eq(Route::getEndCode, route.getEndCode())) > 0 || + routeService.count(new LambdaQueryWrapper<Route>() + .eq(Route::getStartCode, route.getStartCode()) + .eq(Route::getEndCode, route.getEndCode())) > 0 + ) { + return R.error("Save Fail"); + } route.setCreateBy(getLoginUserId()); route.setCreateTime(new Date()); route.setUpdateBy(getLoginUserId()); @@ -70,6 +97,9 @@ @OperationLog("Update Route") @PostMapping("/route/update") public R update(@RequestBody Route route) { + if (route.getStartCode().equals(route.getEndCode())) { + return R.error("Update Fail"); + } route.setUpdateBy(getLoginUserId()); route.setUpdateTime(new Date()); if (!routeService.updateById(route)) { @@ -108,4 +138,34 @@ ExcelUtil.build(ExcelUtil.create(routeService.list(), Route.class), response); } + @PreAuthorize("hasAuthority('manager:route:save')") + @PostMapping("/route/import") + public R importBatch(@RequestBody List<Map<String, Object>> list) { + Long userId = getLoginUserId(); + String regex = "([a-zA-Z]+)\\("; + Pattern pattern = Pattern.compile(regex); + for (Map<String, Object> map : list) { + Map<String, Object> one = new HashMap<>(); + for (Map.Entry<String, Object> entry : map.entrySet()) { + String key = entry.getKey(); + Matcher matcher = pattern.matcher(key); + if (matcher.find()) { + key = matcher.group(1); + } + key = Utils.toCamelCase(key); + one.put(key, entry.getValue()); + } + RouteExcel excelDto = Cools.conver(one, RouteExcel.class); + + Code code0 = codeService.selectByData(Utils.zeroFill(excelDto.getStartCode(), CommonConstant.QR_CODE_LEN)); + Code code1 = codeService.selectByData(Utils.zeroFill(excelDto.getEndCode(), CommonConstant.QR_CODE_LEN)); + + if (null == code0 || null == code1) { continue; } + + routeService.createRouteByCode(code0, code1, excelDto.getDirection(), userId); + codeGapService.createCodeGapByCode(code0, code1, userId); + } + return R.ok(); + } + } -- Gitblit v1.9.1