diff --git a/parent/center.manager/src/main/java/com/lyms/cm/controller/sys/SysRemoteController.java b/parent/center.manager/src/main/java/com/lyms/cm/controller/sys/SysRemoteController.java index fc64b2d..343b22b 100644 --- a/parent/center.manager/src/main/java/com/lyms/cm/controller/sys/SysRemoteController.java +++ b/parent/center.manager/src/main/java/com/lyms/cm/controller/sys/SysRemoteController.java @@ -1,7 +1,5 @@ package com.lyms.cm.controller.sys; -import java.io.IOException; - import javax.servlet.http.HttpServletRequest; import org.springframework.http.MediaType; @@ -22,7 +20,7 @@ public class SysRemoteController extends BaseController { @RequestMapping(value = "/sycn", produces = { MediaType.APPLICATION_JSON_VALUE }) @ResponseBody - public Object push(HttpServletRequest request) throws ClassNotFoundException, IOException { + public Object push(HttpServletRequest request) throws Exception { ChannelData model = SyncUtils.conver(request); Object object = SyncHandler.handler(model); model.setData(ParamsAdpter.builder().push(object).toJsonString()); diff --git a/parent/center.manager/src/main/java/com/lyms/cm/job/SyncFixJob.java b/parent/center.manager/src/main/java/com/lyms/cm/job/SyncFixJob.java index 6ad5e7c..039de90 100644 --- a/parent/center.manager/src/main/java/com/lyms/cm/job/SyncFixJob.java +++ b/parent/center.manager/src/main/java/com/lyms/cm/job/SyncFixJob.java @@ -96,18 +96,22 @@ public class SyncFixJob { LOG.info("拉取到本地任务: " + ToStringBuilder.reflectionToString(oldData)); LOG.info("返回结果: " + result); System.out.println("执行: " + ToStringBuilder.reflectionToString(data)); - Object handlResult = SyncHandler.handler(data); - // 要求处理成功都必须返回true | false; - Boolean tag = (Boolean) handlResult; - if (tag) { - data.setRemote(oldData.getRemote()); - data.setData(ParamsAdpter.builder().push(data.getId()).toJsonString()); - data.setAck(true); - // 处理成功回执消息 - data.setRemoteClazz("com.lyms.hospital.service.sys.impl.SyncDataBasicServiceImpl"); - data.setRemoteMethod("updateBasic"); - work.ack(data); - } + try{ + Object handlResult = SyncHandler.handler(data); + // 要求处理成功都必须返回true | false; + Boolean tag = (Boolean) handlResult; + if (tag) { + data.setRemote(oldData.getRemote()); + data.setData(ParamsAdpter.builder().push(data.getId()).toJsonString()); + data.setAck(true); + // 处理成功回执消息 + data.setRemoteClazz("com.lyms.hospital.service.sys.impl.SyncDataBasicServiceImpl"); + data.setRemoteMethod("updateBasic"); + work.ack(data); + } + }catch (Exception e) { + LOG.error("拉取任务执行失败:{}",e); + } } } } diff --git a/parent/center.manager/src/main/java/com/lyms/cm/job/SyncTableJob.java b/parent/center.manager/src/main/java/com/lyms/cm/job/SyncTableJob.java new file mode 100644 index 0000000..684079c --- /dev/null +++ b/parent/center.manager/src/main/java/com/lyms/cm/job/SyncTableJob.java @@ -0,0 +1,64 @@ +package com.lyms.cm.job; + +import java.io.Serializable; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; + +import com.alibaba.druid.support.json.JSONUtils; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.lyms.base.common.entity.sys.SyncDataBasic; +import com.lyms.base.common.service.sys.SyncDataBasicService; +import com.lyms.sync.ParamsAdpter; +import com.lyms.sync.SyncCallback; +import com.lyms.sync.SyncCenter; +import com.lyms.sync.SyncHandler; +import com.lyms.sync.SyncCenter.Work; +import com.lyms.sync.channel.ChannelData; +import com.lyms.sync.queue.SyncQueue; +import com.lyms.util.HttpUtils; +import com.lyms.util.JsonUtils; + +/** + *
  • @ClassName: SyncTableJob + *
  • @Description: 同步任务执行器,获取SYNC_DATA_BASIC表格的数据进行处理 + *
  • @author 方承 + *
  • @date 2017年5月5日 + *
  • + */ +public class SyncTableJob { + + private static Logger log = LoggerFactory.getLogger(SyncTableJob.class); + + @Autowired + private SyncDataBasicService syncDataBasicService; + + public void excute() { + List dataList = syncDataBasicService.selectList(new EntityWrapper().where("IFSUC=0")); + if(dataList != null ){ + log.debug("=======开始进行 SYNC_DATA_BASIC 表格数据的同步======="); + for(SyncDataBasic entity : dataList){ + try{ + ChannelData data = JsonUtils.jsonToBean(entity.getData(), ChannelData.class); + Object handResult = SyncHandler.handler(data); + if (data.getLoop()) { + data = (ChannelData) handResult; + } else { + data.setData(ParamsAdpter.builder().push(handResult).toJsonString()); + } + entity.setIfsuc(1); + syncDataBasicService.updateById(entity); + }catch (Exception e) { + log.error("【SYNC_DATA_BASIC】表格数据的同步错误:SyncDataBasic = {} {}",JSONObject.toJSON(entity),e); + } + } + } + } + + +} diff --git a/parent/center.manager/src/main/resources/xml/app-timer.xml b/parent/center.manager/src/main/resources/xml/app-timer.xml index 3d89b7a..4bb4b22 100644 --- a/parent/center.manager/src/main/resources/xml/app-timer.xml +++ b/parent/center.manager/src/main/resources/xml/app-timer.xml @@ -16,9 +16,11 @@ + + \ No newline at end of file diff --git a/parent/core.sdk/src/main/java/com/lyms/common/db/DBPasswordCallback.java b/parent/core.sdk/src/main/java/com/lyms/common/db/DBPasswordCallback.java index 209a212..05ce080 100644 --- a/parent/core.sdk/src/main/java/com/lyms/common/db/DBPasswordCallback.java +++ b/parent/core.sdk/src/main/java/com/lyms/common/db/DBPasswordCallback.java @@ -15,10 +15,11 @@ import com.lyms.common.encrypt.DES; import com.lyms.util.Base64Utils; /** - * 数据库密码回调解密 - * - * @author ShenHuaJie - * @version 2016年5月20日 下午3:18:25 + *
  • @ClassName: DBPasswordCallback + *
  • @Description: 数据库密码回调解密 + *
  • @author 方承 + *
  • @date 2017年5月5日 + *
  • */ @SuppressWarnings("serial") public class DBPasswordCallback extends DruidPasswordCallback { @@ -39,7 +40,19 @@ public class DBPasswordCallback extends DruidPasswordCallback { } } - // 请使用该方法加密后,把密文写入classpath:/config/jdbc.properties + /** + * 数据库密码回调解密 + * + + + + + + + + + */ public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException, Exception { String encrypt = Base64Utils.encode(DES.encrypt("root".getBytes(), key)); System.out.println(encrypt); diff --git a/parent/core.sdk/src/main/java/com/lyms/sync/SyncHandler.java b/parent/core.sdk/src/main/java/com/lyms/sync/SyncHandler.java index 30bb992..9cdee77 100644 --- a/parent/core.sdk/src/main/java/com/lyms/sync/SyncHandler.java +++ b/parent/core.sdk/src/main/java/com/lyms/sync/SyncHandler.java @@ -32,12 +32,12 @@ public class SyncHandler { */ private static final SyncCenter center = SyncCenter.install(); - public static Object handler(ChannelData data) { + public static Object handler(ChannelData data) throws Exception{ try { return invoke(data); } catch (Exception e) { LOG.error("执行方法错误: {}", e); - return false; + throw e; } } diff --git a/parent/hospital.web/src/main/java/com/lyms/hospital/controller/LoginController.java b/parent/hospital.web/src/main/java/com/lyms/hospital/controller/LoginController.java index 9d42dcc..a5cc7cd 100644 --- a/parent/hospital.web/src/main/java/com/lyms/hospital/controller/LoginController.java +++ b/parent/hospital.web/src/main/java/com/lyms/hospital/controller/LoginController.java @@ -117,7 +117,7 @@ public class LoginController extends BaseController { @RequestParam(value = "password", required = false) String password, AjaxResult ajaxResult, HttpServletResponse response) { - System.out.println("ShiroWebUtils.getCurrentUser()="+JSONObject.toJSONString(ShiroWebUtils.getCurrentUser())); + System.out.println(JSONObject.toJSON(ShiroWebUtils.getCurrentUser())); ajaxResult.setSuccess(false); if (StringUtils.isEmpty(account) && (StringUtils.isEmpty(code) || StringUtils.isEmpty(password))) { ajaxResult.setMessage("登录账户或者验证码为空,请输入!"); @@ -139,6 +139,7 @@ public class LoginController extends BaseController { return ajaxResult; } } + System.out.println(ShiroWebUtils.getCurrentUser()); Users users = ShiroWebUtils.getCurrentUser(); //Organizations organizations = organizationsService.selectById( users.getOrgId()); Map result = InstanceUtils.newHashMap(); diff --git a/parent/hospital.web/src/main/java/com/lyms/hospital/controller/RouterController.java b/parent/hospital.web/src/main/java/com/lyms/hospital/controller/RouterController.java index 20258e5..2dfdd52 100644 --- a/parent/hospital.web/src/main/java/com/lyms/hospital/controller/RouterController.java +++ b/parent/hospital.web/src/main/java/com/lyms/hospital/controller/RouterController.java @@ -31,7 +31,7 @@ public class RouterController extends BaseController { private static final Logger log = LoggerFactory.getLogger(RouterController.class); @RequestMapping(value = "/pull", produces = { MediaType.APPLICATION_JSON_VALUE }) - public Object pull(HttpServletRequest request) throws ClassNotFoundException, IOException { + public Object pull(HttpServletRequest request) throws Exception { ChannelData data = SyncUtils.conver(request); log.debug("节点数据被中心拉取:" + ToStringBuilder.reflectionToString(data)); Object handResult = SyncHandler.handler(data); @@ -45,10 +45,10 @@ public class RouterController extends BaseController { } @RequestMapping(value = "/push", produces = { MediaType.APPLICATION_JSON_VALUE }) - public Object push(HttpServletRequest request) throws ClassNotFoundException, IOException { + public Object push(HttpServletRequest request) throws Exception { ChannelData data = SyncUtils.conver(request); log.debug("中心推送数据到节点:" + ToStringBuilder.reflectionToString(data)); - Object handResult = SyncHandler.handler(data); + Object handResult = SyncHandler.handler(data); if (data.getLoop()) { data = (ChannelData) handResult; } else {