diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java index 18c785e..c5b2313 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java @@ -17,6 +17,7 @@ import org.springframework.util.Assert; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * Created by Administrator on 2016/9/13 0013. @@ -31,6 +32,9 @@ public class MongoSyncService { protected MongoTemplate mongoTemplate; + public static final String CENTER_BASE_URL= PropertiesUtils.getPropertyValue("center_base_url"); + public static final String CENTER_TOKEN = PropertiesUtils.getPropertyValue("center_token"); + public static String mongo_crypto_key = Config.getItem("mongo_crypto_key", "0"); public boolean syncData(String action, String id, String className, String json) { @@ -58,6 +62,17 @@ public class MongoSyncService { return true; } else if (action.startsWith("Mysql")) { return syncMysqlData(action,id,className,json); + } else if ("POSTMSG".equals(action)) { + String result = HttpRequest.sendPost(CENTER_BASE_URL+"saveCreatedSMS", json, CENTER_TOKEN); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(result)) + { + Map map = JsonUtil.str2Obj(result, Map.class); + if ("0".equals(map.get("errorcode"))) + { + return true; + } + } + return false; } return false; } catch (Exception e) { diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SyncDataService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SyncDataService.java index c5bde52..41d4f71 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SyncDataService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SyncDataService.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -20,6 +21,25 @@ public class SyncDataService { @Autowired private ISyncDataDao iSyncDataDao; + /** + * 对于不能访问外网的医院,先存到本地的库,由公网定时读并转发到短信中心 + */ + public boolean savePostMsg(String jsonData, String hospitalId) { + if ("216".equals(hospitalId)) { + SyncDataModel model = new SyncDataModel(); + model.setStatus(1); + model.setJsonData(jsonData); + model.setAction("POSTMSG"); + model.setCreated(new Date()); + model.setClassName("msgcenter"); + model.setModified(model.getCreated()); + iSyncDataDao.addSyncData(model); + return true; + } else { + return false; + } + } + public SyncDataModel addSyncData(SyncDataModel obj) { return iSyncDataDao.addSyncData(obj); } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/MongoSyncUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/MongoSyncUtil.java index 14ecc89..8936fc1 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/MongoSyncUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/MongoSyncUtil.java @@ -89,7 +89,8 @@ public class MongoSyncUtil { Object aaa = JsonUtil.str2Obj(JsonUtil.obj2JsonString(info), Class.forName(info.getClass().getName())); System.out.println(MD5Utils.md5(aaa.getClass().getName())); System.out.println(LymsEncodeUtil.aesEncrypt("5805868f28b6213d2b7755eb", "Lymsh@2016")); - System.out.println(LymsEncodeUtil.aesDecrypt("8092817F8193D33BE10DE56935C157288FCAC8B7692BECA293504A9D487C207288C0A44ECA93600DC916D943AB6123AE24C1291D79503683D613C576B3704ABE82FA9B1285B343DD091E04C8FFB1BB8C6B0FCD48E397BAB86F484CC534AB6F1F0FAF4BB2B8CCE48F4FD740C102F72D564E92B74D4F463543A39A14D33D6E86E53DD7F5E6827006C1D2C9148C70AA6B397B90CE84E774FCFB5D034E79306BAB24481AC7617B763C4F2B94E71E9C68E2EE0222EB4AD90C2860303BFFDAD3F8F5FCE5C8D26B4D4B14DEBEC8C176A5E19EDA25CF68C1394D435267882C4C8D3D736F84004985A18CA0FF5C100AC40A074981485C7410DB4C4DD101E424E283D7FC3A69914727D5554C2C810862656190567AA211CAEE091BD384271C31DD7276E10FB8CECE0790D59EE18A06ABC1CBC406800057030323C8F3C2C16D9E85E31BE2D63CA31D99FCC5C7E2E1D552779ED5E57AF484BE7F34FBAF0BA5AB6CEB43FA45E231BE428D83ADE2C08CFF0A40E28F8441A16D4A3582B74273F081F4C7E7C672412FAB2E061F0C89DFED5BF6675CC648AE0EABFCC3B87A0316C65590C4F2C7ECB93C4952AC4257BC562D99D9A71E70B3077FA37536B654EF0879BF4B474FCE978059C6FBFDBF35E69D678F9B70E231FA2077B1D2F46B4E7ACAC5592BE63F472F4499DC4A529AA5E95ED41FADDE96378B571AE02F614F124D4DD4AD65A65E7051AC5C4AC46B99B40D4E02E12B25B47A695802B27A888070A3B7B1BC22DE5A9451BB7C09DDB298B5DDB73754339039288DECB1FFD31A0045F8543AA081E29A08DF99F4F48320FC6C6321D6C8932806332B8FDDE30E6CC26A271D429AD79B25DE1D2B9CA51E04BCDCE9BD290932583774FF2790E22C9E0D66FF266C8B3CBB92959CA1C50BB2E92E007FE74F7EE562C6833E69864B1F0D1621F213B05A2BE63B75418A0948D613E0BE8B894D01A7F120850AF98A938FD4DB6AB75E949F5FF0E75AF9A4667C0D4466778CB198B33F526285D90D5809FE7FC862E60A744664B9BFB91A2E43AA3434402EFE9217A7ADF8C519A5B6A48EF852E45E027C8BE9424D79A8096F4C98DE16B0DE2E5740F75C0DDF0AC8192818C6D864F41DBC6C4898EFB692103A97270F4AE03E9300215D65EEDD52473AAD0F83290CA85F9E190B154E34D56E18370F12F33DBD7F35DA476ECF7211000C0508805E2429422A94DBD3296C26D8A859C6FBFDBF35E69D678F9B70E231FA20C0A36E8D6883CAE2D7B9978221B55E60E9BAF730BFDE116772B4DF6EAD107B250E2B987756AB90DC6166A136FEA7010B1FCE2788ADA2367F164094325BD7A323B6C67115C6964F7FE56F4914D0DE29D08787DCB10387B961DAC2F78A57981019761845FD51D9E9660451E80D7571F139589896E7DAE2BE922E4F5D602FD236EC21F2D6AF5065D713651E7DFB03B2E5B9FE92BE862EE68DE6A87F54F32A4F77B3712A1A4EEF4C51F6EDB8CCA328CDF80E0BC4EFA0EF67722046233C573B2E7F4E3A565A023EB0BD21B8D9CB96F8D27C801603E9E8A0A37EF7560C60C9E0AD61F1A1D56232735737611C568891F9143E909E0106D24953F43ECDF140B4A4E135FFF4CCA890FF6665BDB98EA1D1E26F864873ED16E397A618A33A253CB146C56B720E5A8D87880883F1B998EFAC7EBF71E9071DA71742CA50E2BE993C01CABBD44A4D4E4E93D6C6F4A20823BD35BECD845E25C2DDD5348DA67E59F44C02802CADF275E3837194ADB682DB01ECCB3AE1B5A264BB921635F841985DBA35FF9503E27137DF2C8D0AE82BBD9C5FA01F2BC7292E8A04CF440C211CCEE96E7D38AE533205616D7E688F44DFD6F461006CF37F264A86622D89E0DEED5D91E44F3F017BC4AE43C6DA36B97C6B5043DFF6C1915402B5DB3D1115558F79E60C9CE05C91EDB676EEB7FF2ACF55CFEC73529C13EEF7D54ADD37CDCD26A2BCBD7D3B0490C71D8017FCBA98B43A2F596FC41DE2C62DEF3806C46D1B958C0D5614640EDB2DB5AB84D29A2F7C3E25DF156B420F9018D14ECCD8F3D60CE1E6D0913031E0C9F704235AF3BEB5CF751DBF40A1CA39723F715DEA598484957B2DC2AF8158CC06F48DFB90F1BF301F863C64F40159552FE92BFCFC4BE9863DDB4DD9427AF480798BAACBEFAEC10D8BCCDF41AB752E35CDA944A83DE43943EC82858A7E63968D9C151440433908E713529DCBF1F150B9C21CF655BF1A67EB5D81F48BB3DF540BB331F366A566B4CDC48029CFF5444DBB28AD5B77B138B09D6D553E9F753B48337ADA24059F8E1AEBC688333680DAD1E2A7866846B320C80FF26E0EF2FE50D3F92506262CFFB5793EA029F277E23C9B21DF19DE25DBBB5F52956EF90A2ECCB1E1190EF8638CBC1F659FD448576193F6692360505EB47B5878957F8286EFD1510E74687541E24DF44B751C30CCD886773459F0C9EE0470","Lymsh@2016")); + System.out.println(LymsEncodeUtil.aesDecrypt("26EB0301C4A2410E90985A3E55856E4B94848F070CCE3F6400CF502216F6DD18ED0A0A43348E4AB0AB97B38E4CEFEA7A4E1D74EE1671DAD6AC72560C5329BC05","Lymsh@2016")); + System.out.println(LymsEncodeUtil.aesDecrypt("1E66365A4C484EC5DCF99895D324A87FB2F37315BD4FB4C327CF4F002FD203EBF1E850920AB9CBFDB4311E97A481629C325A2519D77B18FE6D18DDDC3206EFACF2B189E1DB41839B019BB8403F2C0875F22A1DF69BC786D3FB4A80FD3FC454A200EF5F2B2F5B534BDC272FB382DA2B14816AD6CBC907E3A6E92C6927B2A8D99A99AB386BFC3326918B7ABC246CBC2BB865E8C217C35DE4D63E1B9F85362951631B4F21101BF2677D87451AD022A87AEF01C099640011CFE40F7427AA3FF00075A878415DA09AD45B4927FEE874F9BA0222F4F39D79E6053EE35CA5997DADA53D88C7D611C8BFAA3C56CE083C80F80F412596C6854CE310766B7F4A97D9E6FF5E4B307EECF94FBC4064BCDC6215C911AF0EE74D33698333F4CBD80D294CD7A9B0447B20A74C8BF046D7C050A6DC9520F95E94C86D5CDE93DA481C86B8F4717FFF132356367A8BB54664742124D0D846877D312FA6B0B00DFCAF9A76A82F8E6A151B1B53E6CE346F228EC5028EA032AB0882617D821E901F96B505956D2A32D11E2D49B33A995828D40C94AA8EE0BE20A53590851073FB6DDE81E7FA4C20508597AEC72C3A8188634D1FB19360DA94FC695510E6FE3B8F2CCC8DB62CB0201F86F753AC93DD7FAA8E6FE69E949692C1DA1B77A10D7049C8B6B92A25F68D1AA935D9223FA0E972F079CB3700F7D0E89F4A6704E66975562133DEAAB6E5501F4578AC42998252F68DD1BC51BEA5F8FC02E4AEA985F268A4B868EF39E59670E5997F9B125761D8A9C05C01C6692253E512E42CB058F183AC04053E07219531D72E8624CDBDCD0D7810F54CABA2FD2F6C9ABDC06827979F3AB97E232CC40A40B3CA0D9EC45DC60593046C29B4B9E36D24A9D663E9D9FD2FE6F4134746E5441A4A3C03CAC95A8E58A11A067410D43C3121DED7AC8FCEF58B9E8B368D4AC0BE5FFF5482B1BF6C7B526F2818D957A2EF68E2FE16695C5B3570B90BBD96FB645B940EE71DE3BA49FBA404B73E58132864877EA6A18039086BD4C3D91C84FEEBD532CF550BDEF950055E7920CDD4EB1FEFAA0468B8A323BEAC7831F91A2E5B248A87CBF2C4B2928F849B1932C0CC0D24B5892F21DCE27738AD99AB14DD6024F983CDC33505609D0FFFA377F3DD507F947DB565B49A007547CFA585F38A12F0BCE7E7384F60D72F080FF9E7DCB8097E975923C1C6B332EE09D933E0E7B5FB2C41B1B4CCA619A674F6840211DE28EF93040854981390852E6FBD11ED48FA9B9172FE2C4C86A3FC84E5760BF0C8A9FE98E3A352105BE540D2D2C9E5283C75A042A47ED98FB1D40E3D26452101FCD38E8630A4FAC165AA36981B75797CA4CA99E96A2D7AE050FF74FCF3859CDB546E1706BE7AF76136461B6C880D4E3BFD6666C80E95DE7E65A1831902FBBC74DDCD1E01EDA246B6942A0AFD48BC7F92EE1197BBF7CAD82AEC196250DDAECD875E67626E4C213A85D39B4208A4812C71FBB21D00844A0D0ED1860FD84185750996D1AD2425F65017A2BF00F3FA748FF34DBEA9CD91B611BF5BD17D06643AB5E23428743064815D2D63B3A877D87D68A2123E0E1856567C056EA76FEE3D435E56D8CB9F6CD57C49FACC42E5CB69C9735DBBE922C11DDE4BECE29333E4EED7F17F8575D50214002A5D870891C6C8D9050A5FC9C56A8CA9B18360FD3EA0CF8BD4C72A3B99EE3042CC5C0292F9CC27D6C219836901B5E3C1A0BDC50A84725A517C0A2DD38106794831725AD7188F784ED4ACC79F38D3273E6C0219F074C92B433C52C3A6D9A3E84394DCFD0539FA9F549028989EC63C8E3E1C71934B6FE681A74FA6F50D683EA349EE278F149EF431043CEF1880768B2111EDFCE5ECE75D17A6F808033350FC0969AF3F990985D3BD6FE3C049EC4DE530BB013DF33A333E19CA3B6D2A39FC8BBC3F17F6064BF4A17F78FAE772C19ACBC7068373C9E8A394C9EA882B47F21491689EB822CCA135019F6D9D76FDBAE47BC4981F6D7F3E60830D9292254C2E7153014509EED6071E67DBE1E83F19E1E3E4B2BEB31A093C8791C583726C817E373BBC6F90D837EB7A4D92B5F9E01BAFF1E768A92BB70A6E303A221A4D2814F7EF702E5FB908AE819E50C8D3E90BE4413BBE03112E8343BB2A4C4241DA3E7AC1EB1B127702AFC8D7D3C42A7BDC5722BF4A81903041D5ED77C50F07B0E18D07266812A3DE48C23ACB6A702DECF9E96AABAAA6847D898F8C884164A96F04A40F7A4EA28BA3CC54053C52","Lymsh@2016")); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java index cc47f51..c276d38 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java @@ -44,8 +44,9 @@ public class SyncDataController extends BaseController { syncDataService.updateSyncData(model); } writeString(response,"updateSyncData success"); + } else { + writeString(response, "updateSyncData fail"); } - writeString(response, "updateSyncData fail"); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java index d91cf6a..3d13439 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyBookbuildingFacade.java @@ -83,6 +83,8 @@ public class BabyBookbuildingFacade { @Autowired private UsersService usersService; + @Autowired + private SyncDataService syncDataService; @Autowired private SmsConfigFacade smsConfigFacade; @@ -610,7 +612,9 @@ public class BabyBookbuildingFacade { if (CollectionUtils.isNotEmpty(messages)) { smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); smsList.setMessages(messages); - MessageCenterService.saveSmsCenter(smsList); + if (!syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), messages.get(0).getExt1())) { + MessageCenterService.saveSmsCenter(smsList); + } } } } @@ -1660,7 +1664,9 @@ public class BabyBookbuildingFacade { smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); smsList.setMessages(messages); //调用发送接口 - MessageCenterService.saveSmsCenter(smsList); + if (!syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), messages.get(0).getExt1())) { + MessageCenterService.saveSmsCenter(smsList); + } } BaseResponse objectResponse = new BaseResponse(); objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index 54e285b..d240a65 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -95,6 +95,9 @@ public class BookbuildingFacade { @Autowired private DeleteProcessHandler deleteProcessHandler; + @Autowired + private SyncDataService syncDataService; + /** * 添加孕妇建档 * @param yunRequest @@ -352,7 +355,9 @@ public class BookbuildingFacade { smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); smsList.setMessages(messages); //调用发送接口 - MessageCenterService.saveSmsCenter(smsList); + if (!syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), messages.get(0).getExt1())) { + MessageCenterService.saveSmsCenter(smsList); + } } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index f690b11..7c12369 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -66,6 +66,9 @@ public class PatientFacade { @Autowired private MatDeliverService matDeliverService; + @Autowired + private SyncDataService syncDataService; + private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(15, 20, 1, TimeUnit.MINUTES, new LinkedBlockingQueue(5000)); /** @@ -462,7 +465,9 @@ public class PatientFacade { smsList.setTypeId(ProjectTypeEnums.YNXT.getId()); smsList.setMessages(messages); //调用发送接口 - MessageCenterService.saveSmsCenter(smsList); + if (!syncDataService.savePostMsg(JsonUtil.obj2JsonString(smsList), messages.get(0).getExt1())) { + MessageCenterService.saveSmsCenter(smsList); + } } } return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); diff --git a/platform-operate-api/src/main/resources/config.properties b/platform-operate-api/src/main/resources/config.properties index 9ecc757..82c81ca 100644 --- a/platform-operate-api/src/main/resources/config.properties +++ b/platform-operate-api/src/main/resources/config.properties @@ -1,9 +1,11 @@ #短信中心url -center_base_url=http://sms.api.stage.platform.healthbaby.com.cn/v1/ +center_base_url=http://sms.healthbaby.com.cn/v1/ #区域平台访问短信中心的token center_token=e0c56363-00d6-42ee-bbe0-23c553583062 + + #His系统版本 0:未使用,1:桓台,2:新乐,3:青龙县医院 his_version=0