From cc59162c1473117b02bc1c83d85ec1a1ea5cd9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Wed, 11 Dec 2019 19:22:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iservice/busi/ISysLocaleResourceService.java | 3 +- .../busi/SysLocaleResourceController.java | 102 ++++++++++++++++----- .../serviceimpl/busi/SysLocaleResourceService.java | 57 +----------- 3 files changed, 82 insertions(+), 80 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java index 07bb411..6747cad 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysLocaleResourceService.java @@ -30,7 +30,7 @@ public interface ISysLocaleResourceService { void deleteSysLocaleResourceById(Long id); @ApiOperation(value = "查询全部系统资源",notes = "查询全部系统资源") - List listSysLocaleResource(); + List listSysLocaleResource(); @ApiOperation(value = "系统资源复杂查询,分页,排序",notes = "系统资源复杂查询,分页,排序") ListPager querySysLocaleResourceByPager(SysLocaleResource sysLocaleResource, Pager pager); @@ -57,4 +57,5 @@ public interface ISysLocaleResourceService { @ApiOperation(value = "添加初始化资源") void insertInitSysLocaleResourceList(List sysLocaleResources); + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java index ad4d062..a866118 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysLocaleResourceController.java @@ -26,29 +26,14 @@ import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; + import javax.annotation.Resource; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.DataInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.util.*; /** * @Description :系统语言资源服务 @@ -302,12 +287,19 @@ public class SysLocaleResourceController extends CoreBaseController { List sysLocaleResourceList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), SysLocaleResource.class); - // 初始化数据 - for (SysLocaleResource sysOrderNoRule : sysLocaleResourceList) { - sysOrderNoRule.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - ConvertBean.modelInitialize(sysOrderNoRule, AuthUtil.getSessionUser()); + // 初始化数据,资源去重 + Map itemMap = new HashMap<>(); + String resourceKey; + for (SysLocaleResource localeResource : sysLocaleResourceList) { + localeResource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.modelInitialize(localeResource, AuthUtil.getSessionUser()); + + resourceKey = localeResource.getResourceKey() + localeResource.getLanguageCode(); + + itemMap.put(resourceKey, localeResource); } - sysLocaleResourceService.insertInitSysLocaleResourceList(sysLocaleResourceList); + + sysLocaleResourceService.insertInitSysLocaleResourceList(new ArrayList<>(itemMap.values())); // 重新加载资源 systemInitService.putAndLoadSysLocaleLanguage(); @@ -372,4 +364,66 @@ public class SysLocaleResourceController extends CoreBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } + + @PostMapping(value = "/increment-import") + @ApiOperation(value = "增量导入系统资源") + public ResultBean incrementImportSysLocaleResource(@RequestParam("file") MultipartFile file){ + try { + ExcelTool excelTool = new ExcelTool(entityManager, redisRes); + List sysLocaleResourceList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), + SysLocaleResource.class); + + // 初始化数据 + SysLocaleResource orginResource; + for (SysLocaleResource resource : sysLocaleResourceList) { + orginResource = sysLocaleResourceService.getSysLocaleResourceByLanguageCodeAndResKey(resource.getLanguageCode() + ,resource.getResourceKey()); + // 是否存在 + if (orginResource!=null) { + resource.setId(orginResource.getId()); + } + + resource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + ConvertBean.modelInitialize(resource, AuthUtil.getSessionUser()); + } + sysLocaleResourceService.saveSysLocaleResource(sysLocaleResourceList); + + // 重新加载资源 + systemInitService.putAndLoadSysLocaleLanguage(); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (BaseImppException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 按指定大小,分隔集合,将集合按规定个数分为n个部分 + * @param + * + * @param list + * @param len + * @return + */ + public static List> splitList(List list, int len) { + + if (list == null || list.isEmpty() || len < 1) { + return Collections.emptyList(); + } + + List> result = new ArrayList<>(); + + int size = list.size(); + int count = (size + len - 1) / len; + + for (int i = 0; i < count; i++) { + List subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1))); + result.add(subList); + } + + return result; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java index 787daec..10f9485 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysLocaleResourceService.java @@ -26,10 +26,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -222,58 +220,7 @@ public class SysLocaleResourceService implements ISysLocaleResourceService { @Override public void insertInitSysLocaleResourceList(List sysLocaleResourceList) { sysLocaleResourceRDao.deleteAll(); - - // 资源去重 - Map> resourceMap = new HashMap<>(); - Map itemMap; - for (SysLocaleResource localeResource : sysLocaleResourceList) { - if (resourceMap.containsKey(localeResource.getResourceKey())) { - itemMap = resourceMap.get(localeResource.getResourceKey()); - } else { - itemMap = new HashMap<>(); - resourceMap.put(localeResource.getResourceKey(), itemMap); - } - - itemMap.put(localeResource.getLanguageCode(), localeResource); - } - - List resourceList = new ArrayList<>(); - for (String key : resourceMap.keySet()) { - for (SysLocaleResource value : resourceMap.get(key).values()) { - resourceList.add(value); - } - } - - for (List sysLocaleResources : splitList(resourceList, 1000)) { - sysLocaleResourceRDao.saveAll(sysLocaleResources); - } - + sysLocaleResourceRDao.saveAll(sysLocaleResourceList); } - /** - * 按指定大小,分隔集合,将集合按规定个数分为n个部分 - * @param - * - * @param list - * @param len - * @return - */ - public static List> splitList(List list, int len) { - - if (list == null || list.isEmpty() || len < 1) { - return Collections.emptyList(); - } - - List> result = new ArrayList<>(); - - int size = list.size(); - int count = (size + len - 1) / len; - - for (int i = 0; i < count; i++) { - List subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1))); - result.add(subList); - } - - return result; - } } From d8f50038ed0e56fd62e6bb9469a496c03bf31263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=AA=E4=BA=91=E6=98=8A?= Date: Thu, 12 Dec 2019 17:25:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96mq=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java | 2 +- .../cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java | 2 +- .../cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java | 2 +- .../estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java | 2 +- .../java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java index e0438f7..4a705bd 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/I3CoreQueueReceiver.java @@ -38,7 +38,7 @@ public class I3CoreQueueReceiver { @RabbitListener(queues = QUEUE_IMPP_MESSAGE) public void processImppMessage(SysMessage msg, Channel channel, Message message) { try { - LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE】数据接收成功:{}",msg); + LOGGER.debug("【MQ-QUEUE_IMPP_MESSAGE】数据接收成功:{}",msg); //信息已处理 channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java index 38a48dd..6b4f98a 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageLetterQueueReceiver.java @@ -66,7 +66,7 @@ public class MessageLetterQueueReceiver { */ @RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER) public void processImppMessage(String data, Channel channel, Message message) { - LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER, data); + LOGGER.debug("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER, data); SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); try { ConvertBean.serviceModelInitialize(msg, "system"); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java index e0669d4..669651d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageMailQueueReceiver.java @@ -55,7 +55,7 @@ public class MessageMailQueueReceiver { SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); Long startTime = System.currentTimeMillis(); try { - LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE_MAIL】数据接收成功:{}", msg); + LOGGER.debug("【MQ-QUEUE_IMPP_MESSAGE_MAIL】数据接收成功:{}", msg); if (msg.getMessageSendTime() == null) { msg.setMessageSendTime(TimeTool.getNowTime(true)); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java index 9c3b8a9..3dad586 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/MessageSWebNoticeQueueReceiver.java @@ -60,7 +60,7 @@ public class MessageSWebNoticeQueueReceiver { */ @RabbitListener(queues = PlatformConstWords.QUEUE_SWEB_NOTICE) public void processImppMail(String data, Channel channel, Message message) { - LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_SWEB_NOTICE, data); + LOGGER.debug("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_SWEB_NOTICE, data); // 添加消息 SysMessage msg = JsonUtilTool.decode(data, SysMessage.class); try { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java index 0d57bd5..3343ed7 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java @@ -59,7 +59,7 @@ public class ScheduleQueueReceiver { public void processSchedule(String data, Channel channel, Message message) { try { SysLogTaskTime logTaskTime = JsonUtilTool.decode(data, SysLogTaskTime.class); - LOGGER.info("【MQ-QUEUE_IMPP_SCHEDULE】数据接收成功:{}", logTaskTime); + LOGGER.debug("【MQ-QUEUE_IMPP_SCHEDULE】数据接收成功:{}", logTaskTime); // 跟新最后执行时间 及 任务状态 if(logTaskTime != null){ SysTaskPlan taskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(logTaskTime.getName(), logTaskTime.getGroupName());