Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/mq/ScheduleQueueReceiver.java
yun-zuoyi
汪云昊 6 years ago
commit 08d2888087

@ -1,42 +0,0 @@
package cn.estsh.i3plus.core.api.iservice.base;
/**
* @Description : service
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 16:57
* @Modify:
**/
public interface IDataSimpleService {
//void saveMachineFactory(MachineFactory machineFactory);
/*@Transactional
void updateMachineFactoryNameById(long id, String factoryName);
@Transactional
void deleteMachineFactoryById(long id);
*//**
*
* @param factoryName
* @return
*//*
@Transactional(readOnly = true)
List<MachineFactory> findMachineFactoryByFactoryName(String factoryName);
*//**
* code
* @param factoryCode
* @return
*//*
@Transactional(readOnly = true)
List<MachineFactory> findMachineFactoryByFactoryCode(String factoryCode);
*//**
*
* @return
*//*
@Transactional(readOnly = true)
List<MachineFactory> findMachineFactorySpecial();*/
}

@ -44,7 +44,10 @@ public interface ISysLabelTemplateService {
*
*/
@ApiOperation(value = "查询全部打印模板")
List<SysLabelTemplate> ListSysLabelTemplate();
List<SysLabelTemplate> listSysLabelTemplate(SysLabelTemplate template);
@ApiOperation(value = "查询全部打印模板详情")
List<SysLabelTemplate> listSysLabelTemplateDetail(SysLabelTemplate template);
/**
* id
@ -69,12 +72,17 @@ public interface ISysLabelTemplateService {
List<SysLabelTemplateParam> listSysLabelTemplateParam(String labelTemplateId);
/**
*
* id
*/
@ApiOperation(value = "根据模板编号查询模板信息")
LabelTemplateModel getLabelTemplateInfoById(String labelTemplateId);
/**
*
*/
@ApiOperation(value = "根据模板编号查询模板信息", notes = "根据模板编号查询模板信息")
LabelTemplateModel getLabelTemplateInfoByCode(String templateCode, String modifyDateTime);
/**
*
* @param id ID
* @param status

@ -19,6 +19,9 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "新增系统资源",notes = "新增系统资源")
SysLocaleResource insertSysLocaleResource(SysLocaleResource sysLocaleResource);
@ApiOperation(value = "保存系统资源",notes = "保存系统资源")
List<SysLocaleResource> saveSysLocaleResource(List<SysLocaleResource> list);
@ApiOperation(value = "修改系统资源",notes = "修改系统资源")
void updateSysLocaleResource(SysLocaleResource sysLocaleResource);
@ -40,6 +43,11 @@ public interface ISysLocaleResourceService {
@ApiOperation(value = "根据语言code和资源key查询资源")
SysLocaleResource getSysLocaleResourceByLanguageCodeAndResKey(String languageCode,String resKey);
@ApiOperation(value = "根据资源key查询资源")
List<SysLocaleResource> findSysLocaleResourceByResKey(String resKey);
@ApiOperation(value = "根据id查询资源")
SysLocaleResource getSysLocaleResourceById(Long id);
}

@ -1,372 +0,0 @@
package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.core.apiservice.mq.I3CoreQueueConfig;
import cn.estsh.i3plus.core.apiservice.thread.CoreDemoThread;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.platform.common.util.QueueConstWords;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.model.test.TestConstructModel;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysRole;
import cn.estsh.i3plus.pojo.platform.bean.TestTransUser;
import cn.estsh.impp.framework.base.controller.CoreBaseController;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.thread.ImppThreadPool;
import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean;
import com.rabbitmq.client.Channel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.concurrent.TimeoutException;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-26 10:34
* @Modify:
**/
@RestController
@Api(description="复杂对象服务demo")
@RequestMapping("/demo-redis-mq")
public class DemoRedisMqController extends CoreBaseController{
private static final Logger LOGGER = LoggerFactory.getLogger(DemoRedisMqController.class);
/**
*
*/
@Resource(name = CommonConstWords.IMPP_REDIS_CORE)
private ImppRedis redisCore;
/**
* rabbitMQ
*/
//@Autowired
//private AmqpTemplate rabbitTemplate;
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private ISysRoleService sysRoleService;
@Autowired
private RabbitListenerEndpointRegistry rabbitRegistry;
@Autowired
private ConnectionFactory connectionFactory;
/**
* mqack
*/
@Autowired
private CachingConnectionFactory mqFactory;
@GetMapping(value="/get-mq-info")
@ApiOperation(value="获取队列信息")
public ResultBean getMqInfo(){
System.out.println(rabbitRegistry.isAutoStartup() + " " + rabbitRegistry.isRunning());
System.out.println(mqFactory.isPublisherConfirms() + " " + mqFactory.isPublisherReturns());
System.out.println(connectionFactory);
Set<String> ids = rabbitRegistry.getListenerContainerIds();
for(String id : ids){
System.out.println("id = "+id);
}
return new ResultBean(true);
}
@GetMapping(value="/put-cache")
@ApiOperation(value="缓存",notes="放入数据")
public ResultBean putCache(){
//放入缓存
//redisCore.putObject("machineFactory",new MachineFactory("111","nnnn"));
redisCore.putObject("wms","123123123");
return new ResultBean(true,"已放入缓存");
}
@GetMapping(value="/get-cache")
@ApiOperation(value="缓存",notes="获取数据")
public ResultBean getCache(String name){
System.out.println("===== " + redisCore.getObject(name));
return new ResultBean(true,redisCore.getObject(name));
}
@GetMapping(value="/exception-demo")
@ApiOperation(value="异常demo",notes="异常demo")
public ResultBean exceptionDemp() throws IOException, TimeoutException {
String data = "true";
if("true".equals(data)) {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.WMS.getCode())
.setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode())
.setErrorDetail("aaa操作数据出错")
.setErrorSolution("检查数据完整性")
.build();
}
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/international")
@ApiOperation(value="国际化处理",notes="资源配置文件及国际化")
public ResultBean international() {
Locale locale = LocaleContextHolder.getLocale();
System.out.println(locale.getLanguage() + " " + locale.getCountry());
return new ResultBean(true,"操作成功 " + locale.getLanguage() + " " + locale.getCountry());
}
@Resource(name= CommonConstWords.IMPP_REDIS_SESSION)
private ImppRedis redisSession;
@GetMapping(value="/set-redis")
@ApiOperation(value="setredis")
public ResultBean setRedis(String key,String value) {
//redisSession.putObject(key,value);
//redisCore.putObject(key,value);
ResultBean rs = new ResultBean(true,"yes");
rs.setPager(new Pager(100));
redisSession.putObject("rs",rs);
redisCore.putObject("rs",rs);
return new ResultBean(true,"操作成功 " + key + " : " + value);
}
@GetMapping(value="/get-redis")
@ApiOperation(value="getredis")
public ResultBean getRedis(String key) {
Object d1 = redisSession.getObject(key);
System.out.println("redisSession-d1==" + d1);
Object d2 = redisCore.getObject(key);
if(d1 != null) {
SessionUser sessionUser = AuthUtil.getSessionUser();
System.out.println(sessionUser.toString());
}
System.out.println("redisCore-d2==" + d2);
System.out.println(d1 == null?"null":d1.toString());
System.out.println(d2 == null?"null":d2.toString());
return new ResultBean(true,"操作成功 " + d1 + " : " + d2);
}
@GetMapping(value="/test-thread")
@ApiOperation(value="testThread")
public ResultBean testThread(String param) {
ImppThreadPool.getThreadExcutorService().execute(new CoreDemoThread(param));
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/send-mq")
@ApiOperation(value="队列",notes="发送")
public ResultBean sendMQ(String data){
String context = "hello : " + data;
System.out.println("发送DEMO_STR_QUEUE数据 : " + context);
this.rabbitTemplate.convertAndSend(I3CoreQueueConfig.DEMO_STR_QUEUE, context);
System.out.println("发送DEMO_HANDLE_QUEUE数据 : " + context);
this.rabbitTemplate.convertAndSend(I3CoreQueueConfig.DEMO_HANDLE_QUEUE, context);
System.out.println("发送Object数据 : " + context);
//this.rabbitTemplate.convertAndSend(I3CoreQueueConfig.DEMO_OBJ_QUEUE, new MachineFactory("111mq","rabbit"));
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/get-mq-handle")
@ApiOperation(value="手动获取队列",notes="接收队列")
public ResultBean getHandleMQ(){
Object data = this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_HANDLE_QUEUE);
if(data != null) {
LOGGER.info("获取队列数据:" + data);
}
Object message = this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_STR_QUEUE);
if(message != null){
LOGGER.info("获取str数据" + data);
}
message = this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_OBJ_QUEUE);
if(message != null){
LOGGER.info("获取obj数据" + data);
}
return new ResultBean(true,"");
}
/**
*
* @param type
* @param data
* @return
* @throws IOException
* @throws TimeoutException
*/
@GetMapping(value="/send-returnmsg")
@ApiOperation(value="队列返回信息",notes="发送")
public ResultBean sendReturnMQ(int type,String data) throws IOException, TimeoutException {
if(type == 1) {
System.out.println("===== in confirm ========");
rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
System.out.println("===ReturnSenderDemo ack==="+ack);
if (ack) {
System.out.println("ReturnSenderDemo:消息发送成功 ");
} else {
System.out.println("ReturnSenderDemo:" + cause + correlationData.toString());
}
});
}else{
System.out.println("===== in return ========");
rabbitTemplate.setReturnCallback((Message message, int i, String s, String s1, String s2) -> {
System.out.println("===ConfirmSenderDemo ack==="+message);
System.out.println("i=" + i + ",s=" + s + ",s1=" + s1 + ",s2=" + s2);
});
}
String returnMsg = (String) rabbitTemplate.convertSendAndReceive(I3CoreQueueConfig.DEMO_RETURN_QUEUE, data);
System.out.println("===返回数据==="+returnMsg);
return new ResultBean(true,"操作成功");
}
/**
* ackRabbitListener
* @return
* @throws IOException
* @throws TimeoutException
*/
@GetMapping(value="/send-ackmsg")
@ApiOperation(value="ack队列",notes="发送")
public ResultBean sendAckMQ(String data) throws IOException, TimeoutException {
System.out.println("发送ack数据 : " + data);
this.rabbitTemplate.convertAndSend(I3CoreQueueConfig.DEMO_ACK_QUEUE, data);
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/get-ackmsg")
@ApiOperation(value="getack队列",notes="接收")
public ResultBean getAckMQ() throws IOException, TimeoutException {
Channel channel = this.rabbitTemplate.getConnectionFactory().createConnection().createChannel(false);
LOGGER.info("channel = {}",channel);
String str = (String) rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE);
LOGGER.info("str = {}",str);
Message message = rabbitTemplate.receive(I3CoreQueueConfig.DEMO_ACK_QUEUE);
LOGGER.info("message = {}",message);
try {
/*String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE);
System.out.println("【client】数据接收成功" + data);
if("ack".equals(data)){
System.out.println("【client】数据抛出异常");
throw new RuntimeException("【队列抛出异常】" + data);
}*/
String data = (String) this.rabbitTemplate.receiveAndConvert(I3CoreQueueConfig.DEMO_ACK_QUEUE);
System.out.println("【client】数据接收成功" + data);
if("ackack".equals(data)){
System.out.println("【client】数据抛出异常");
throw new RuntimeException("【队列抛出异常】" + data);
}
//在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
e.printStackTrace();
//丢弃这条消息
// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,false);
// System.out.println("receiver fail");
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
return new ResultBean(true,"操作成功");
}
/**
* mq
* @return
* @throws IOException
* @throws TimeoutException
*/
@GetMapping(value="/send-mq-role")
@ApiOperation(value="发送角色信息队列",notes="发送")
public ResultBean sendRoleMQ(int sendCount) throws IOException, TimeoutException {
List<SysRole> roleList = sysRoleService.findSysRoleAll();
LOGGER.info("共有角色数:{}",roleList.size());
//发送信息至通用交换机-》扇形交换
SysRole sysRole;
for(int i=0;i<sendCount;i++) {
sysRole = roleList.get(i);
LOGGER.info("{}次发送角色:{}",i,sysRole);
this.rabbitTemplate.convertAndSend(QueueConstWords.QUEUE_EXCHANGE_COMMON,"", sysRole);
}
return new ResultBean(true,"操作成功");
}
/**
* mq
* @return
* @throws IOException
* @throws TimeoutException
*/
@GetMapping(value="/send-mq-role-direct")
@ApiOperation(value="发送角色信息队列",notes="发送")
public ResultBean sendRoleMQDirect(String routeKey) throws IOException, TimeoutException {
//通过routekey来控制接收的队列
this.rabbitTemplate.convertAndSend(QueueConstWords.QUEUE_EXCHANGE_DIRECT,routeKey, "发送信息=key" + routeKey);
return new ResultBean(true,"操作成功");
}
@GetMapping(value="/redis-object")
@ApiOperation(value="测试对象",notes="对象是否需要构造方法")
public ResultBean testRedisObject(){
//放入缓存
TestConstructModel model = new TestConstructModel();
model.setId(1);
model.setUser(new TestTransUser());
model.setUserList(new ArrayList<>());
redisCore.putObject("model",model,100);
return new ResultBean(true,"已放入缓存");
}
}

@ -140,9 +140,9 @@ public class SysLabelTemplateController extends CoreBaseController {
*/
@GetMapping(value = "/list")
@ApiOperation(value = "查询全部打印模板",notes = "查询全部打印模板")
public ResultBean findSysConfigAll(){
public ResultBean findSysConfigAll(@RequestBody SysLabelTemplate template){
try {
List<SysLabelTemplate> sysLabelTemplateList = sysLabelTemplateService.ListSysLabelTemplate();
List<SysLabelTemplate> sysLabelTemplateList = sysLabelTemplateService.listSysLabelTemplate(template);
return ResultBean.success("操作成功")
.setResultList(sysLabelTemplateList)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
@ -154,6 +154,25 @@ public class SysLabelTemplateController extends CoreBaseController {
}
/**
*
* @return
*/
@GetMapping(value = "/list-detail")
@ApiOperation(value = "查询全部打印模板",notes = "查询全部打印模板")
public ResultBean findListDetail(@RequestBody SysLabelTemplate template){
try {
List<SysLabelTemplate> sysLabelTemplateList = sysLabelTemplateService.listSysLabelTemplateDetail(template);
return ResultBean.success("操作成功")
.setResultList(sysLabelTemplateList)
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
/**
* id
* @param id id
* @return

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.controller.busi;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.exception.BaseImppException;
import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum;
import cn.estsh.i3plus.platform.common.tool.ExcelTool;
import cn.estsh.i3plus.platform.common.tool.StringTool;
@ -361,6 +362,8 @@ public class SysMenuController extends CoreBaseController {
.setResultList(sysMenuService.refreshSysMenu(list));
}catch(ImppBusiException busExcep){
return ResultBean.fail(busExcep);
}catch(BaseImppException busExcep){
return ResultBean.fail(busExcep);
}catch(Exception e){
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}

@ -1,36 +0,0 @@
package cn.estsh.i3plus.core.apiservice.dao;
/**
* @Description : hqldemo
* crudrepositoryhql
* @Reference : sql @Query(sql,nativeQuery=true)
* @Author : alwaysfrin
* @CreateDate : 2018-09-05 16:41
* @Modify:
**/
//@Repository
//public interface IMachineFactoryDao extends CrudRepository<MachineFactory,Long> {
//此处findBy开头会自动根据属性名进行查询
/*List<MachineFactory> findByFactoryName(String factoryName);
@Modifying
@Query("update MachineFactory mf set mf.factoryName = :factoryName where mf.id = :id")
void updateMachineFactoryNameById(long id, String factoryName);
@Modifying
@Query("delete from MachineFactory mf where id = :id")
void deleteMachineFactoryById(@Param("id") long id);
//按位查询
@Query("select mf from MachineFactory mf where factoryName = ?1")
List<MachineFactory> findMachineFactoryByFactoryName(String factoryName);
//参数匹配
@Query("from MachineFactory mf where mf.factoryCode = :factoryCode")
List<MachineFactory> findMachineFactoryByFactoryCode(@Param("factoryCode") String factoryCode);
//自定义Hql
@Query("from MachineFactory mf where mf.createDatetime like '2018-01-01%'")
List<MachineFactory> findMachineFactorySpecial();*/
//}

@ -7,6 +7,8 @@ import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_MESSAGE;
/**
* @Description : wms
* @Reference :
@ -18,8 +20,6 @@ import org.springframework.context.annotation.Configuration;
public class I3CoreQueueConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(I3CoreQueueConfig.class);
public static final String IMPP_MESSAGE_QUEUE = "IMPP_MESSAGE_QUEUE";
/**
*
* @return
@ -27,136 +27,56 @@ public class I3CoreQueueConfig {
@Bean
public Queue getImppMessageQueue() {
LOGGER.info("【开启平台消息队列】");
return new Queue(IMPP_MESSAGE_QUEUE);
}
/*********** 队列demo ***********/
public static final String DEMO_STR_QUEUE = "demo_str_queue";
/**
* DEMO
* @return
*/
@Bean
public Queue getStrQueue() {
//LOGGER.info("【DEMO_STR_QUEUE队列】");
return new Queue(DEMO_STR_QUEUE);
}
public static final String DEMO_OBJ_QUEUE = "demo_obj_queue";
/**
* DEMO
* @return
* @throws Exception
*/
@Bean
public Queue getObjQueue() throws Exception {
//LOGGER.info("【DEMO_OBJ_QUEUE队列】");
return new Queue(DEMO_OBJ_QUEUE);
}
public static final String DEMO_HANDLE_QUEUE = "demo_handle_queue";
/**
* DEMO_HANDLE_QUEUE
* @return
* @throws Exception
*/
@Bean
public Queue getHandleQueue() throws Exception {
//LOGGER.info("【DEMO_HANDLE_QUEUE队列】");
return new Queue(DEMO_HANDLE_QUEUE);
return new Queue(QUEUE_IMPP_MESSAGE);
}
public static final String DEMO_ACK_QUEUE = "ack_queue";
/**
* DEMO_ACK_QUEUE
* @return
* @throws Exception
*/
@Bean
public Queue getAckQueue() throws Exception {
//LOGGER.info("【DEMO_ACK_QUEUE队列】");
return new Queue(DEMO_ACK_QUEUE);
}
public static final String DEMO_RETURN_QUEUE = "return_queue";
/**
* DEMO_RETURN_QUEUE
* QUEUE_IMPP_MESSAGE_LETTER
* @return
* @throws Exception
*/
@Bean
public Queue getReturnQueue() throws Exception {
//LOGGER.info("【DEMO_RETURN_QUEUE队列】");
return new Queue(DEMO_RETURN_QUEUE);
public Queue getQueueImppMessageLetterQueue(){
return new Queue(PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER);
}
//测试wms微服队列
public static final String DEMO_CLOUD_WMS = "DEMO_CLOUD_WMS";
/**
* DEMO_CLOUD_WMS
* QUEUE_IMPP_MESSAGE_MAIL
* @return
* @throws Exception
*/
@Bean
public Queue getDemoCloudWmsQueue() throws Exception {
//LOGGER.info("【DEMO_CLOUD_WMS】");
return new Queue(DEMO_CLOUD_WMS);
public Queue getQueueImppMessageMailQueue(){
return new Queue(PlatformConstWords.QUEUE_IMPP_MESSAGE_MAIL);
}
/**
* IMPP_MESSAGE_LETTER_QUEUE
* QUEUE_SWEB_NOTICE
* @return
* @throws Exception
*/
@Bean
public Queue getQueueIMPP_MESSAGE_LETTER_QUEUE() throws Exception {
return new Queue(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE);
public Queue getQueueSwebNoticeQueue(){
return new Queue(PlatformConstWords.QUEUE_SWEB_NOTICE);
}
/**
* IMPP_MESSAGE_LETTER_QUEUE_BAK
* QUEUE_IMPP_SCHEDULE
* @return
* @throws Exception
*/
@Bean
public Queue getQueueIMPP_MESSAGE_LETTER_QUEUE_BAK() throws Exception {
return new Queue(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK);
public Queue getQueueImppScheduleQueue(){
return new Queue(PlatformConstWords.QUEUE_IMPP_SCHEDULE);
}
/**
* IMPP_MESSAGE_MAIL_QUEUE
* @return
* @throws Exception
*
* @return
*/
@Bean
public Queue getQueueIMPP_MESSAGE_MAIL_QUEUE() throws Exception {
return new Queue(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE);
public Queue getQueueImppResource(){
return new Queue(PlatformConstWords.QUEUE_IMPP_RESOURCE);
}
/**
* SWEB_NOTICE_QUEUE
* @return
* @throws Exception
*/
@Bean
public Queue getQueueSWEB_NOTICE_QUEUE() throws Exception {
return new Queue(PlatformConstWords.SWEB_NOTICE_QUEUE);
}
/**
* IMPP_SCHEDULE_QUEUE
* @return
* @throws Exception
*/
@Bean
public Queue getQueueIMPP_SCHEDULE_QUEUE() throws Exception {
return new Queue(PlatformConstWords.IMPP_SCHEDULE_QUEUE);
}
}

@ -1,6 +1,6 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.icloud.wms.sdk.IWmsDemoCloud;
import cn.estsh.i3plus.pojo.base.bean.BaseResultBean;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import com.rabbitmq.client.Channel;
import org.slf4j.Logger;
@ -12,6 +12,8 @@ import org.springframework.stereotype.Component;
import java.io.IOException;
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_MESSAGE;
/**
* @Description :
* @Reference :
@ -31,17 +33,17 @@ public class I3CoreQueueReceiver {
* @param msg
* @param channel
* @param message
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.QUEUE_IMPP_MESSAGE, new SysMessage(....));
*/
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_QUEUE)
@RabbitListener(queues = QUEUE_IMPP_MESSAGE)
public void processImppMessage(SysMessage msg, Channel channel, Message message) {
try {
LOGGER.info("【MQ-IMPP_MESSAGE_QUEUE】数据接收成功{}",msg);
LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE】数据接收成功{}",msg);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【MQ-IMPP_MESSAGE_QUEUE】处理出错{}",e.getMessage(),e);
LOGGER.error("【MQ-QUEUE_IMPP_MESSAGE】处理出错{}",e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
@ -52,101 +54,4 @@ public class I3CoreQueueReceiver {
}
}
/**
*
* @param msg
* @param channel
* @param message
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
*/
@RabbitListener(queues = I3CoreQueueConfig.DEMO_CLOUD_WMS)
public void processCloud(String msg, Channel channel, Message message) {
try {
LOGGER.info("【MQ-DEMO_CLOUD_WMS】数据接收成功{}",msg);
BaseResultBean result = iWmsDemoCloud.testWms(msg);
LOGGER.info("微服返回结果:{}",result);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
LOGGER.error("【MQ-DEMO_CLOUD_WMS】处理出错{}",e.getMessage(),e);
//丢弃这条消息
try {
// 未成功处理,重新发送
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
/********************* 消息队列处理demo *******************/
/*@RabbitListener(queues = I3CoreQueueConfig.DEMO_STR_QUEUE)
public void getObjQueue(String data) {
System.out.println("接收数据 : " + data.toString());
}
@RabbitListener(queues = I3CoreQueueConfig.DEMO_OBJ_QUEUE)
public void getStrQueue(MachineFactory data) {
System.out.println("强转对象:" + data);
}*/
/*@RabbitListener(queues = I3CoreQueueConfig.DEMO_RETURN_QUEUE)
public Message processReturn(String data, Channel channel, Message message) {
try {
System.out.println("【client】数据接收成功" + data);
Thread.sleep(1000);
//告诉服务器收到这条消息 已经被我消费了 可以在队列删掉 这样以后就不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发
//消息的标识false只确认当前一个消息收到true确认所有consumer获得的消息
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (Exception e) {
System.out.println("出现异常:" + e.getMessage());
// 错误反馈
// val1 = 是否批量.true:将一次性拒绝所有小于deliveryTag的消息。
// val2 = 被拒绝的是否重新列入队列
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
//拒绝同basicNack只是没有批量这个属性
//channel.basicReject(message.getMessageProperties().getDeliveryTag(),true);
}
Message returnMsg = null;
try {
returnMsg = new Message("---返回数据---".getBytes("UTF-8"), message.getMessageProperties());
}catch(Exception e){
e.printStackTrace();
}
return message;
}
@RabbitListener(queues = I3CoreQueueConfig.DEMO_ACK_QUEUE)
public void processAck(String data, Channel channel, Message message) {
try {
System.out.println("【client】数据接收成功" + data);
*//*if(data.startsWith("ack")){
System.out.println("【client】数据抛出异常");
throw new RuntimeException("【队列抛出异常】" + data);
}*//*
//在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {
e.printStackTrace();
//丢弃这条消息
// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,false);
// System.out.println("receiver fail");
try {
//
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}*/
}

@ -62,11 +62,11 @@ public class MessageLetterQueueReceiver {
* @param data
* @param channel
* @param message
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
* rabbitTemplate.convertAndSend(I3CoreQueueConfig.QUEUE_IMPP_MESSAGE, new SysMessage(....));
*/
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE)
@RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER)
public void processImppMessage(String data, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, data);
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER, data);
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
try {
ConvertBean.serviceModelInitialize(msg, "system");
@ -112,7 +112,7 @@ public class MessageLetterQueueReceiver {
}
// 消息处理完成
LOGGER.info("【MQ-{}】站内信{} DeliveryTag:{} 处理成功", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,
LOGGER.info("【MQ-{}】站内信{} DeliveryTag:{} 处理成功", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER,
msg, message.getMessageProperties().getDeliveryTag());
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
} catch (IOException e) {
@ -131,7 +131,7 @@ public class MessageLetterQueueReceiver {
private void printErrorMessage(Exception e, Class zlass, String msg) {
Long time = System.currentTimeMillis();
LOGGER.error("【MQ-{}】{} 异常代码:{} 消息内容{},处理出错:{}", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, time, zlass, msg, e.getMessage());
LOGGER.error("【MQ-{}】{} 异常代码:{} 消息内容{},处理出错:{}", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER, time, zlass, msg, e.getMessage());
e.printStackTrace();
//TODO 此处需要配置
@ -144,7 +144,7 @@ public class MessageLetterQueueReceiver {
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.EXTERNAL.getValue());
sysMessage.setMessageReceiversNameRdd("yunhao.wang@estsh.com,wei.peng@estsh.com");
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_MESSAGE_MAIL, JSON.toJSONString(sysMessage));
}
@ -153,16 +153,16 @@ public class MessageLetterQueueReceiver {
// *
// * @param msg
// * @param channel
// * @param message 发送rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
// * @param message 发送rabbitTemplate.convertAndSend(I3CoreQueueConfig.QUEUE_IMPP_MESSAGE, new SysMessage(....));
// */
// @RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE)
// @RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER)
// public void processImppMessage(SysMessage msg, Channel channel, Message message) {
// try {
// LOGGER.info("【MQ-IMPP_MESSAGE_LETTER_QUEUE】数据接收成功:{}", msg);
// LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE_LETTER】数据接收成功{}", msg);
//
// msg = sysMessageService.insertSysMessage(msg);
//
// LOGGER.info("【MQ-IMPP_MESSAGE_LETTER_QUEUE】数据接收成功:{}", msg);
// LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE_LETTER】数据接收成功{}", msg);
//
// // 收件人信息
// String[] messageReceiver = new String[0];
@ -209,7 +209,7 @@ public class MessageLetterQueueReceiver {
// //信息已处理
// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
// } catch (IOException e) {
// LOGGER.error("【MQ-IMPP_MESSAGE_LETTER_QUEUE】处理出错:{}", e.getMessage(), e);
// LOGGER.error("【MQ-QUEUE_IMPP_MESSAGE_LETTER】处理出错{}", e.getMessage(), e);
// //丢弃这条消息
// try {
// // 未成功处理,重新发送

@ -7,7 +7,6 @@ import cn.estsh.i3plus.core.apiservice.util.MailUtil;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysRefUserMessage;
@ -15,7 +14,6 @@ import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import com.alibaba.fastjson.JSON;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.core.util.JsonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
@ -54,12 +52,12 @@ public class MessageMailQueueReceiver {
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE)
@RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_MESSAGE_MAIL)
public void processImppMail(String data, Channel channel, Message message) {
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
Long startTime = System.currentTimeMillis();
try {
LOGGER.info("【MQ-IMPP_MESSAGE_MAIL_QUEUE】数据接收成功:{}", msg);
LOGGER.info("【MQ-QUEUE_IMPP_MESSAGE_MAIL】数据接收成功{}", msg);
if (msg.getMessageSendTime() == null) {
msg.setMessageSendTime(TimeTool.getNowTime(true));
}
@ -117,7 +115,7 @@ public class MessageMailQueueReceiver {
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
} catch (Exception e) {
LOGGER.error("【MQ-IMPP_MESSAGE_MAIL_QUEUE】处理出错:{}", e.getMessage(), e);
LOGGER.error("【MQ-QUEUE_IMPP_MESSAGE_MAIL】处理出错{}", e.getMessage(), e);
//丢弃这条消息
try {
if(msg.getId() != null) {

@ -7,7 +7,6 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.platform.common.tool.JsonUtilTool;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysFile;
import cn.estsh.i3plus.pojo.platform.bean.SysFileAttach;
@ -59,9 +58,9 @@ public class MessageSWebNoticeQueueReceiver {
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.SWEB_NOTICE_QUEUE)
@RabbitListener(queues = PlatformConstWords.QUEUE_SWEB_NOTICE)
public void processImppMail(String data, Channel channel, Message message) {
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.SWEB_NOTICE_QUEUE, data);
LOGGER.info("【MQ-{}】 数据接收成功:{}", PlatformConstWords.QUEUE_SWEB_NOTICE, data);
// 添加消息
SysMessage msg = JsonUtilTool.decode(data, SysMessage.class);
try {
@ -132,7 +131,7 @@ public class MessageSWebNoticeQueueReceiver {
}
// 消息处理完成
LOGGER.info("【MQ-{}】站内信{} DeliveryTag:{} 处理成功", PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,
LOGGER.info("【MQ-{}】站内信{} DeliveryTag:{} 处理成功", PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER,
msg, message.getMessageProperties().getDeliveryTag());
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
} catch (Exception e) {

@ -0,0 +1,43 @@
//package cn.estsh.i3plus.core.apiservice.mq;
//
//import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
//import com.rabbitmq.client.Channel;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import java.util.Random;
//
///**
// * @Description : 邮件队列处理
// * @Reference :
// * @Author : yunhao
// * @CreateDate : 2018-11-15 22:15
// * @Modify:
// **/
//@Component
//public class MessageTestQueueReceiver {
// private static final Logger LOGGER = LoggerFactory.getLogger(MessageTestQueueReceiver.class);
// Random random = new Random();//默认构造方法
//
// /**
// * 系统邮件处理队列
// *
// * @param data 系统消息信息
// * @param channel 通道
// * @param message 消息
// */
// @RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER_BAK,exclusive = true,concurrency = "1")
// public void processImppMail(String data, Channel channel, Message message) {
// try {
//
// LOGGER.info("====>> {}" ,data);
// Thread.sleep(random.nextInt(100));
// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
// }catch (Exception e){
// e.printStackTrace();
// }
// }
//}

@ -55,72 +55,74 @@ public class ScheduleQueueReceiver {
* @param channel
* @param message
*/
@RabbitListener(queues = PlatformConstWords.IMPP_SCHEDULE_QUEUE)
@RabbitListener(queues = PlatformConstWords.QUEUE_IMPP_SCHEDULE)
public void processSchedule(String data, Channel channel, Message message) {
try {
SysLogTaskTime logTaskTime = JsonUtilTool.decode(data, SysLogTaskTime.class);
LOGGER.info("【MQ-IMPP_SCHEDULE_QUEUE】数据接收成功{}", logTaskTime);
LOGGER.info("【MQ-QUEUE_IMPP_SCHEDULE】数据接收成功{}", logTaskTime);
// 跟新最后执行时间 及 任务状态
SysTaskPlan taskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(logTaskTime.getName(), logTaskTime.getGroupName());
if (taskPlan != null) {
taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime());
taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNumValue() + 1);
taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus());
// 更新任务状态以及最后执行时间
sysTaskPlanService.updateSysTaskPlan(taskPlan);
if(logTaskTime != null){
SysTaskPlan taskPlan = sysTaskPlanService.getSysTaskPlanByNameAndGroup(logTaskTime.getName(), logTaskTime.getGroupName());
if (taskPlan != null) {
taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime());
taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNumValue() + 1);
taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus());
// 更新任务状态以及最后执行时间
sysTaskPlanService.updateSysTaskPlan(taskPlan);
// 添加定时任务日志
logTaskTime.setTaskPlanId(taskPlan.getId());
logTaskTime.setTaskSoftTypeRdd(taskPlan.getTaskSoftTypeRdd());
logTaskTime.setTaskCycleNameRdd(taskPlan.getTaskCycleNameRdd());
logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd());
ConvertBean.serviceModelInitialize(logTaskTime, "system");
sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime);
// 添加定时任务日志
logTaskTime.setTaskPlanId(taskPlan.getId());
logTaskTime.setTaskSoftTypeRdd(taskPlan.getTaskSoftTypeRdd());
logTaskTime.setTaskCycleNameRdd(taskPlan.getTaskCycleNameRdd());
logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd());
ConvertBean.serviceModelInitialize(logTaskTime, "system");
sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime);
// 定时任务失败通知
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == logTaskTime.getTaskStatus()
&& CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) {
// 设置通知邮件内容
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageSoftType(logTaskTime.getTaskSoftTypeRdd());
sysMessage.setMessageType(taskPlan.getNoticeMethod());
sysMessage.setMessageSenderNameRdd("系统管理员");
sysMessage.setMessageTitle("任务计划失败通知");
sysMessage.setMessageContent(
String.format("<p>管理员 您好:</p><div style=\"text-align:center\">任务计划(Name: %s,GroupName: %s执行失败,详细信息请查看定时任务日志(ID: %s).</div>",
taskPlan.getName(), taskPlan.getGroupName(), logTaskTime.getId())
);
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageSendTime(TimeTool.getNowTime(true));
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
// 初始数据
ConvertBean.serviceModelInitialize(sysMessage, "system");
// 定时任务失败通知
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == logTaskTime.getTaskStatus()
&& CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) {
// 设置通知邮件内容
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageSoftType(logTaskTime.getTaskSoftTypeRdd());
sysMessage.setMessageType(taskPlan.getNoticeMethod());
sysMessage.setMessageSenderNameRdd("系统管理员");
sysMessage.setMessageTitle("任务计划失败通知");
sysMessage.setMessageContent(
String.format("<p>管理员 您好:</p><div style=\"text-align:center\">任务计划(Name: %s,GroupName: %s执行失败,详细信息请查看定时任务日志(ID: %s).</div>",
taskPlan.getName(), taskPlan.getGroupName(), logTaskTime.getId())
);
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageSendTime(TimeTool.getNowTime(true));
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
// 初始数据
ConvertBean.serviceModelInitialize(sysMessage, "system");
// 是否内部成员
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == taskPlan.getIsInternalUser()) {
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.EXTERNAL.getValue());
sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel());
} else {
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue());
// 设置收件人名称
String[] messageReceiver = taskPlan.getNoticeChannel().split(",");
String receiversName = sysUserService.findSysUserByIds(StringTool.getArrayLong(messageReceiver))
.stream().map(e -> e.getUserName()).collect(Collectors.joining(","));
// 是否内部成员
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == taskPlan.getIsInternalUser()) {
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.EXTERNAL.getValue());
sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel());
} else {
sysMessage.setMessageReceiverType(ImppEnumUtil.MESSAGE_RECEIVER_TYPE.INTERNAL.getValue());
// 设置收件人名称
String[] messageReceiver = taskPlan.getNoticeChannel().split(",");
String receiversName = sysUserService.findSysUserByIds(StringTool.getArrayLong(messageReceiver))
.stream().map(e -> e.getUserName()).collect(Collectors.joining(","));
sysMessage.setMessageReceiversNameRdd(receiversName);
}
sysMessage.setMessageReceiversNameRdd(receiversName);
}
// 发送到对应处理队列
if (taskPlan.getNoticeMethod() != null && ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()) {
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
} else {
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE, JSON.toJSONString(sysMessage));
// 发送到对应处理队列
if (taskPlan.getNoticeMethod() != null && ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()) {
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_MESSAGE_MAIL, JSON.toJSONString(sysMessage));
} else {
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER, JSON.toJSONString(sysMessage));
}
}
}
}
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
}
} catch (IOException e) {
LOGGER.error("【MQ-IMPP_SCHEDULE_QUEUE】处理出错{}", e.getMessage(), e);
//丢弃这条消息

@ -0,0 +1,115 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleLanguageService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLocaleResourceService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.pojo.base.enumutil.BlockFormEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import com.rabbitmq.client.Channel;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import static cn.estsh.i3plus.platform.common.util.PlatformConstWords.QUEUE_IMPP_RESOURCE;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @CreateDate : 19-8-23 3:12
* @Modify:
**/
@Component
public class SysLocalResourceQueue {
private static final Logger LOGGER = LoggerFactory.getLogger(SysLocalResourceQueue.class);
@Autowired
private ISysLocaleResourceService localeResourceService;
@Autowired
private ISysLocaleLanguageService localeLanguageService;
@Autowired
private ISystemInitService systemInitService;
/**
*
* <per>
* <br/>
* <br/>
* </per>
* @param resourceKey
* @param channel
* @param message
*/
@RabbitListener(queues = QUEUE_IMPP_RESOURCE)
public void processImppMessage(String resourceKey, Channel channel, Message message) {
try {
if(StringUtils.isNotBlank(resourceKey)){
List<SysLocaleLanguage> list = localeLanguageService.listSysLocaleLanguage();
if(list != null && list.size() > 0){
List<SysLocaleResource> resourceList = localeResourceService.findSysLocaleResourceByResKey(resourceKey);
List<SysLocaleResource> saveResource = new ArrayList<>(list.size());
SysLocaleResource resource = null;
for (SysLocaleLanguage language : list) {
resource = null;
if(resourceList != null && resourceList.size() > 0){
for (SysLocaleResource localeResource : resourceList) {
if(language.getLanguageCode() != null && language.getLanguageCode().equals(localeResource.getLanguageCode())){
resource = localeResource;
}
}
}else {
resource = new SysLocaleResource();
resource.setLanguageCode(language.getLanguageCode());
resource.setLanguageNameRdd(language.getLanguageName());
resource.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
resource.setResourceType(CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE.EXCEPTION.getValue());
resource.setResourceValue(resourceKey);
resource.setResourceKey(resourceKey);
resource.setCreateDatetime(TimeTool.getNowTime(true));
resource.setModifyDatetime(TimeTool.getNowTime(true));
resource.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue()); //有效
resource.setIsDeleted(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); //未删除
}
if(resource != null){
saveResource.add(resource);
}
}
if(saveResource != null && saveResource.size() > 0){
localeResourceService.saveSysLocaleResource(saveResource);
systemInitService.putAndLoadSysLocaleLanguage();
}
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
try {
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
LOGGER.info("[MQ ACK] Tag :{} Completed successfully",message.getMessageProperties().getDeliveryTag());
} catch (IOException e) {
LOGGER.error("[MQ ERROR] MQ Ack Error Message:{}",e.getMessage());
e.printStackTrace();
}
}
}
}

@ -1,55 +0,0 @@
package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.IDataSimpleService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 17:03
* @Modify:
**/
@Service
public class DataSimpleService implements IDataSimpleService {
private Logger LOGGER = LoggerFactory.getLogger(this.getClass());
/*@Autowired
private IMachineFactoryDao machineFactoryDao;
@Override
public void saveMachineFactory(MachineFactory machineFactory) {
//生成主键
machineFactoryDao.save(machineFactory);
}*/
/*
@Override
public void updateMachineFactoryNameById(long id, String factoryName) {
machineFactoryDao.updateMachineFactoryNameById(id,factoryName);
}
@Override
public void deleteMachineFactoryById(long id) {
machineFactoryDao.deleteMachineFactoryById(id);
}
@Autowired
private DataSource ds;
@Override
public List<MachineFactory> findMachineFactoryByFactoryName(String factoryName) {
return machineFactoryDao.findMachineFactoryByFactoryName(factoryName);
}
@Override
public List<MachineFactory> findMachineFactoryByFactoryCode(String factoryCode) {
return machineFactoryDao.findMachineFactoryByFactoryCode(factoryCode);
}
@Override
public List<MachineFactory> findMachineFactorySpecial() {
return machineFactoryDao.findMachineFactorySpecial();
}*/
}

@ -2,10 +2,12 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.ISysLabelTemplateService;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.base.tool.HqlPack;
import cn.estsh.i3plus.pojo.model.platform.LabelTemplateModel;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
@ -23,6 +25,10 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -136,8 +142,37 @@ public class SysLabelTemplateService implements ISysLabelTemplateService {
@Override
@ApiOperation(value = "查询打印模板", notes = "查询打印模板")
public List<SysLabelTemplate> ListSysLabelTemplate() {
return sysLabelTemplateRDao.list();
public List<SysLabelTemplate> listSysLabelTemplate(SysLabelTemplate template) {
return sysLabelTemplateRDao.findByHqlWhere(CoreHqlPack.packBeanSysLabelTemplate(template));
}
@Override
public List<SysLabelTemplate> listSysLabelTemplateDetail(SysLabelTemplate template) {
List<SysLabelTemplate> list = sysLabelTemplateRDao.findByHqlWhere(CoreHqlPack.packBeanSysLabelTemplate(template));
if(list != null && list.size() > 0){
List<Long> ids = new ArrayList<>(list.size());
list.forEach(tmp -> ids.add(tmp.getId()));
DdlPackBean packBean = DdlPackBean.getDdlPackBean();
DdlPreparedPack.getInPackList(ids,"templateId",packBean);
List<SysLabelTemplateParam> paramList = sysLabelTemplateParamRDao.findByHqlWhere(packBean);
if(paramList != null && paramList.size() > 0){
for (SysLabelTemplateParam param : paramList) {
for (SysLabelTemplate temp : list) {
if(temp.getId().equals(param.getId())){
List<SysLabelTemplateParam> params = temp.getLabelTemplateParamList();
if(params == null){
params = new ArrayList<>();
}
params.add(param);
temp.setLabelTemplateParamList(params);
}
}
}
}
}
return list;
}
@Override
@ -177,6 +212,18 @@ public class SysLabelTemplateService implements ISysLabelTemplateService {
}
@Override
@ApiOperation(value = "查询所有有效的模板数据同步到PCN微服务", notes = "查询所有有效的模板数据同步到PCN微服务")
public LabelTemplateModel getLabelTemplateInfoByCode(String organizeCode, String modifyDateTime) {
LabelTemplateModel templateModel = new LabelTemplateModel();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String endDate = simpleDateFormat.format(new Date());
DdlPreparedPack.timeBuilder(modifyDateTime, endDate, "modifyDatetime", packBean, true);
templateModel.setTemplateParamList(sysLabelTemplateParamRDao.findByHqlWhere(packBean));
return templateModel;
}
@Override
@ApiOperation(value = "修改打印模板状态", notes = "修改打印模板状态")
public void updateSysLabelTemplateStatus(Long id, int status, SessionUser user) {
SysLabelTemplate sysLabelTemplate = sysLabelTemplateRDao.getById(id);

@ -62,6 +62,13 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
return sysLocaleResourceRDao.insert(sysLocaleResource);
}
@Override
public List<SysLocaleResource> saveSysLocaleResource(List<SysLocaleResource> list) {
LOGGER.info("系统资源 SYS_LOCALE_RESOURCE list{}",list);
return sysLocaleResourceRDao.saveAll(list);
}
@Override
@ApiOperation(value = "修改系统资源",notes = "修改系统资源")
public void updateSysLocaleResource(SysLocaleResource sysLocaleResource) {
@ -153,6 +160,12 @@ public class SysLocaleResourceService implements ISysLocaleResourceService {
return sysLocaleResourceRDao.getByProperty(new String[]{"languageCode","resourceKey"},new String[]{languageCode,resKey});
}
@Override
public List<SysLocaleResource> findSysLocaleResourceByResKey(String resKey) {
return sysLocaleResourceRDao.findByProperty(new String[]{"resourceKey"},new String[]{resKey});
}
@Override
public SysLocaleResource getSysLocaleResourceById(Long id) {
return sysLocaleResourceRDao.getById(id);

@ -157,15 +157,14 @@ public class SysMessageService implements ISysMessageService {
// 判断消息类型推送到对应的队列
// 邮件
if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE, JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_MESSAGE_MAIL, JSON.toJSONString(sysMessage));
// 站内信
}else if(ImppEnumUtil.MESSAGE_TYPE.LETTER.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE_BAK,JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_IMPP_MESSAGE_LETTER,JSON.toJSONString(sysMessage));
// SWEB通知及公告
} else if(ImppEnumUtil.MESSAGE_TYPE.SWEB_PUBLIC_NOTICE.getValue() == sysMessage.getMessageTypeValue() ||
ImppEnumUtil.MESSAGE_TYPE.SWEB_NOTICE.getValue() == sysMessage.getMessageTypeValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.SWEB_NOTICE_QUEUE,JSON.toJSONString(sysMessage));
rabbitTemplate.convertAndSend(PlatformConstWords.QUEUE_SWEB_NOTICE,JSON.toJSONString(sysMessage));
} else {
throw ImppExceptionBuilder.newInstance()
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())

@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi;
import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService;
import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService;
import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao;
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
@ -15,8 +16,10 @@ import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository;
import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository;
import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack;
import cn.estsh.impp.framework.boot.auth.AuthUtil;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
import cn.estsh.impp.framework.boot.util.ValidatorBean;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -24,6 +27,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@ -137,19 +141,11 @@ public class SysRoleService implements ISysRoleService {
List<String> featuresListRdd = new ArrayList<>(); // 冗余
List<SysRefRoleMenu> refs = new ArrayList<>(); // 角色权限关系
// 封装需要删除的IDS
Long[] rids = new Long[roleList.size()];
for (int i = 0; i < roleList.size(); i++) {
rids[i] = roleList.get(i).getId();
}
// 删除角色权限关系
String deleteWhere = CoreHqlPack.packHqlIds("roleId", roleIds);
List<SysRefRoleMenu> refRoleMenuList = refRoleMenuRDao.findByHqlWhere(deleteWhere);
refRoleMenuRDao.deleteAll(refRoleMenuList);
refRoleMenuRDao.deleteByPropertyIn("roleId",roleIds);
if(ids != null && ids.length > 0){
String menuWhere = CoreHqlPack.packHqlIds("id", ids);
List<SysMenu> list = sysMenuRDao.findByHqlWhere(menuWhere);
List<SysMenu> list = sysMenuRDao.findAllById(Arrays.asList(ids));
SysRefRoleMenu ref = null;
// 插入角色权限关系
@ -161,11 +157,10 @@ public class SysRoleService implements ISysRoleService {
ref.setRoleNameRdd(role.getName());
ref.setMenuNameRdd(menu.getName());
ref.setMenuId(menu.getId());
ref.setIsValid(CommonEnumUtil.IS_VAILD.VAILD.getValue());
ref.setIsDeleted(CommonEnumUtil.IS_DEAL.NO.getValue());
ref.setMenuTypeRdd(menu.getMenuType());
ConvertBean.serviceModelInitialize(ref, AuthUtil.getSessionUser());
refs.add(ref);
refRoleMenuRDao.insert(ref);
}
// 冗余信息封装
@ -185,7 +180,6 @@ public class SysRoleService implements ISysRoleService {
role.setMenuNumber(featuresListRdd.size());
}
refRoleMenuRDao.saveAll(refs);
roleRDao.saveAll(roleList);
}else {
throw ImppExceptionBuilder.newInstance()

Loading…
Cancel
Save