diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/JsonUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/JsonUtil.java index e75fe52..99e23f8 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/JsonUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/JsonUtil.java @@ -21,8 +21,7 @@ public class JsonUtil { public static T jkstr2Obj(String content, Class cls) { ObjectMapper objectMapper = new ObjectMapper(); - - + objectMapper.setDateFormat(DateUtil.y_m_d_h_m_s); try { return (T) objectMapper.readValue(content, cls); } catch (IOException e) { @@ -35,6 +34,7 @@ public class JsonUtil { Object cls) { try { ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setDateFormat(DateUtil.y_m_d_h_m_s); return objectMapper.writeValueAsString(cls); } catch (Exception e) { 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 0c2d3ca..50c9ce8 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 @@ -101,7 +101,7 @@ public class MongoSyncUtil { System.out.println(LymsEncodeUtil.aesEncrypt("com.lyms.platform.pojo.AntenatalExaminationModel", "Lymsh@2016")); System.out.println(LymsEncodeUtil.aesDecrypt("26EB0301C4A2410E90985A3E55856E4B17CABBCE00EE3710B5338326EF3D68CA40298890D135C40B591D77FE529AAC4E","Lymsh@2016")); System.out.println(); - String ssss = LymsEncodeUtil.aesDecrypt("8092817F8193D33BE10DE56935C157288FCAC8B7692BECA293504A9D487C207288C0A44ECA93600DC916D943AB6123AE24C1291D79503683D613C576B3704ABE82FA9B1285B343DD091E04C8FFB1BB8C6B0FCD48E397BAB86F484CC534AB6F1F0FAF4BB2B8CCE48F4FD740C102F72D564E92B74D4F463543A39A14D33D6E86E53DD7F5E6827006C1D2C9148C70AA6B397B90CE84E774FCFB5D034E79306BAB24481AC7617B763C4F2B94E71E9C68E2EE0222EB4AD90C2860303BFFDAD3F8F5FCE5C8D26B4D4B14DEBEC8C176A5E19EDA25CF68C1394D435267882C4C8D3D736F84004985A18CA0FF5C100AC40A074981485C7410DB4C4DD101E424E283D7FC3A69914727D5554C2C810862656190567AA211CAEE091BD384271C31DD7276E10FB8CECE0790D59EE18A06ABC1CBC406800057030323C8F3C2C16D9E85E31BE2D63CA31D99FCC5C7E2E1D552779ED5E57AF484BE7F34FBAF0BA5AB6CEB43FA45E231BE428D83ADE2C08CFF0A40E28F8441A16D4A3582B74273F081F4C7E7C672412FAB2E061F0C89DFED5BF6675CC648AE0EABFCC3B87A0316C65590C4F2C7ECB93C4952AC4257BC562D99D9A71E70B3077FA37536B654EF0879BF4B474FCE978059C6FBFDBF35E69D678F9B70E231FA2077B1D2F46B4E7ACAC5592BE63F472F4499DC4A529AA5E95ED41FADDE96378B571AE02F614F124D4DD4AD65A65E7051AC5C4AC46B99B40D4E02E12B25B47A695802B27A888070A3B7B1BC22DE5A9451BB7C09DDB298B5DDB73754339039288DECB1FFD31A0045F8543AA081E29A08DF99F4F48320FC6C6321D6C8932806332B8FDDE30E6CC26A271D429AD79B25DE1D2B9CA51E04BCDCE9BD290932583774FF2790E22C9E0D66FF266C8B3CBB92959CA1C50BB2E92E007FE74F7EE562C6833E69864B1F0D1621F213B05A2BE63B75418A0948D613E0BE8B894D01A7F120850AF98A938FD4DB6AB75E949F5FF0E75AF9A4667C0D4466778CB198B33F526285D90D5809FE7FC862E60A744664B9BFB91A2E43AA3434402EFE9217A7ADF8C519A5B6A48EF852E45E027C8BE9424D79A8096F4C98DE16B0DE2E5740F75C0DDF0AC8192818C6D864F41DBC6C4898EFB692103A97270F4AE03E9300215D65EEDD52473AAD0F83290CA85F9E190B154E34D56E18370F12F33DBD7F35DA476ECF7211000C0508805E2429422A94DBD3296C26D8A859C6FBFDBF35E69D678F9B70E231FA20C0A36E8D6883CAE2D7B9978221B55E60E9BAF730BFDE116772B4DF6EAD107B250E2B987756AB90DC6166A136FEA7010B1FCE2788ADA2367F164094325BD7A323B6C67115C6964F7FE56F4914D0DE29D08787DCB10387B961DAC2F78A57981019EA0C89D13546F29670FA7E2928A7203B0172244B9D4802C76971980AA0859713ABE7D0ADFFDF1EEA22826B31D8DD5C61DB8BFB4C17909F9B098563B7D22DCDED3347C4D4F94FE2D09DCB1F569205ADED73D90BEBF183255D827FA873228C4E092CB47C997D727D57DA3D83F53C3A510686B90C3ABCEE0B49C66327EEC60E83A8086A881E5E398233660FCCA0DE65F4BFC8FD48AF452E6EC3B721A55EFBBA7A362A4C373399B38C787358CBDE1E72EA7D1ECFF79B71DF77D533BE8596F16237667FE6619F15E9676DB849DC6ACBC06DAA776B405D687632895302216F1EDA659962B74F47A5B305623EFE466090EEE6BFE82EB5C98F31E9EBC2E0A4C74C4AF1B7FBB7AA7528C18EB56A29CFE5BF19AE063F5202664D7FEDD2D28B9A09122DEB50A27742855315921018A6A5A8F890C1DE919766A561184D22FC4F6EFB2CD0A2D9ABF1F3678547B1318F1192E8EAF8FA9B6C50C58546DF1C53FD2A4FA204EBF025535D5EAA33B0EE081F12A55A7EFB0C1B582D900D35D1557F56FCD9494AA0C8503E3E565785B656BA2415FB9BFE160A1371777AE606ECAD799A6AB3D11508026585EB0FE6EB05986978EF86E01A92296E52EB58DF88298F747869C5266F737B70DD3009B1763D2E1B3529D066C10E969CAB958D7C1E7CA41FE4D97B2AA9B474B21F17C8926E2D12E2A10FE4B48F5B9180B04DC255EA38B43A7E1301942F3AB9413D0131E91EE0F2657D394CF5FD6A5E1F8088E1E937CAAFE11106F8ECC5D2DF0C5EE4EF5CF507A44699783F51CAD85DF273AFBF6AA4F6E9FD460BC14C1314B774D655002855A3B4ABED752905A7EE63B11B211286E10FB3F1CEA2CAB57634B16F9848C7D418B48D2E84A78F5A7725F57D5EB4314AEC74BCF3D9A88BAD7F125F809505472E18A71CE82747804F655D49EDFAAA78DCC69F11C206E6FCB8F6381892618FA9C6FC95872AE447D7E716DFA778BAF1630A44F66F566F3FFCE683D93D43740CEBE6B6E4CFC0DE474150A861E9FC1C4A02966B3F560F6E8311037547D79962C0B93E097E6D9B07B781AF3A451002E42F9219C3BB06EB860DAF46183B05AAF311EEAAA7A58DADECFA956A00E7505EBE60035AF518D5FF378FA6FEE1123515A4001AEBDEC6FB475D5D442ADE62D5CB", "Lymsh@2016"); + String ssss = LymsEncodeUtil.aesDecrypt("8092817F8193D33BE10DE56935C157288FCAC8B7692BECA293504A9D487C207288C0A44ECA93600DC916D943AB6123AE24C1291D79503683D613C576B3704ABE82FA9B1285B343DD091E04C8FFB1BB8C6B0FCD48E397BAB86F484CC534AB6F1F0FAF4BB2B8CCE48F4FD740C102F72D564E92B74D4F463543A39A14D33D6E86E53DD7F5E6827006C1D2C9148C70AA6B397B90CE84E774FCFB5D034E79306BAB24481AC7617B763C4F2B94E71E9C68E2EE0222EB4AD90C2860303BFFDAD3F8F5FCE5C8D26B4D4B14DEBEC8C176A5E19EDA25CF68C1394D435267882C4C8D3D736F84004985A18CA0FF5C100AC40A074981485C7410DB4C4DD101E424E283D7FC3A69914727D5554C2C810862656190567AA211CAEE091BD384271C31DD7276E10FB8CECE0790D59EE18A06ABC1CBC406800057030323C8F3C2C16D9E85E31BE2D63CA31D99FCC5C7E2E1D552779ED5E57AF484BE7F34FBAF0BA5AB6CEB43FA45E231BE428D83ADE2C08CFF0A40E28F8441A16D4A3582B74273F081F4C7E7C672412FAB2E061F0C89DFED5BF6675CC648AE0EABFCC3B87A0316C65590C4F2C7ECB93C4952AC4257BC562D99D9A71E70B3077FA37536B654EF0879BF4B474FCE978059C6FBFDBF35E69D678F9B70E231FA2077B1D2F46B4E7ACAC5592BE63F472F4499DC4A529AA5E95ED41FADDE96378B571AE02F614F124D4DD4AD65A65E7051AC5C4AC46B99B40D4E02E12B25B47A695802B27A888070A3B7B1BC22DE5A9451BB7C09DDB298B5DDB73754339039288DECB1FFD31A0045F8543AA081E29A08DF99F4F48320FC6C6321D6C8932806332B8FDDE30E6CC26A271D429AD79B25DE1D2B9CA51E04BCDCE9BD290932583774FF2790E22C9E0D66FF266C8B3CBB92959CA1C50BB2E92E007FE74F7EE562C6833E69864B1F0D1621F213B05A2BE63B75418A0948D613E0BE8B894D01A7F120850AF98A938FD4DB6AB75E949F5FF0E75AF9A4667C0D4466778CB198B33F526285D90D5809FE7FC862E60A744664B9BFB91A2E43AA3434402EFE9217A7ADF8C519A5B6A48EF852E45E027C8BE9424D79A8096F4C98DE16B0DE2E5740F75C0DDF0AC8192818C6D864F41DBC6C4898EFB692103A97270F4AE03E9300215D65EEDD52473AAD0F83290CA85F9E190B154E34D56E18370F12F33DBD7F35DA476ECF7211000C0508805E2429422A94DBD3296C26D8A859C6FBFDBF35E69D678F9B70E231FA20C0A36E8D6883CAE2D7B9978221B55E60E9BAF730BFDE116772B4DF6EAD107B250E2B987756AB90DC6166A136FEA7010B1FCE2788ADA2367F164094325BD7A323B6C67115C6964F7FE56F4914D0DE29D08787DCB10387B961DAC2F78A579810198A155AB9D63D2A78654F3447728A6363F0210B9D902AEA9B53916DC687D4E22187C98E4D4849CCFB4729BB910DA123CDDB8BFB4C17909F9B098563B7D22DCDED3347C4D4F94FE2D09DCB1F569205ADED73D90BEBF183255D827FA873228C4E092CB47C997D727D57DA3D83F53C3A510686B90C3ABCEE0B49C66327EEC60E83A8086A881E5E398233660FCCA0DE65F4BFC8FD48AF452E6EC3B721A55EFBBA7A362A4C373399B38C787358CBDE1E72EA7D1ECFF79B71DF77D533BE8596F16237667FE6619F15E9676DB849DC6ACBC06DAA776B405D687632895302216F1EDA659962B74F47A5B305623EFE466090EEE6BFE82EB5C98F31E9EBC2E0A4C74C4AF1B7FBB7AA7528C18EB56A29CFE5BF19AE063F5202664D7FEDD2D28B9A09122DEB50A27742855315921018A6A5A8F890C1DE919766A561184D22FC4F6EFB2CD0A2D9ABF1F3678547B1318F1192E8EAF8FA9B6C50C58546DF1C53FD2A4FA204EBF025535D5EAA33B0EE081F12A55A7EFB0C1B582D900D35D1557F56FCD9494AA0C8503E3E565785B656BA2415FB9BFE160A1371777AE606ECAD799A6AB3D11508026585EB0FE6EB05986978EF86E01A92296E52EB58DF88298F747869C5266F737B70DD3009B1763D2E1B3529D066C10E969CAB958D7C1E7CA41FE4D97B2AA9B474B21F17C8926E2D12E2A10FE4B48F5B9180B04DC255EA38B43A7E1301942F3AB9413D0131E91EE0F2657D394CF5FD6A5E1F8088E1E937CAAFE11106F8ECC5D2DF0C5EE4EF5CF507A44699783F51CAD85DF273AFBF6AA4F6E9FD460BC14C1314B774D655002855A3B4ABED752905A7EE63B11B211286E10FB3F1CEA2CAB57634B16F9848C7D418B48D2E84A78F5A7725F57D5EB4314AEC74BCF3D9A88BAD7F125F809505472E18A71CE82747804F655D49EDFAAA78DCC69F11C206E6FCB8F6381892618FA9C6FC95872AE447D7E716DFA778BAF1630A44F66F566F3FFCE683D93D43740CEBE6B6E4CFC0DE474150A861E9FC1C4A02966B3F560F6E8311037547D79962C0B93E097E6D9B07B781AF3A45100231F33145D04C9F3EB778A7A3E1750062F311EEAAA7A58DADECFA956A00E7505EBE60035AF518D5FF378FA6FEE1123515A4001AEBDEC6FB475D5D442ADE62D5CB", "Lymsh@2016"); System.out.println(ssss); System.out.println(ssss); UpdateMultiData data = new UpdateMultiData(); @@ -117,6 +117,10 @@ public class MongoSyncUtil { String s = "{\"query\":{\"parentId\":\"581a91c528b67bb1fa239ce3\"},\"update\":{\"score\":0,\"rRisk\":\"[\\\"年龄??35??\\\"]\"}}"; UpdateMultiData updateMultiData = JsonUtil.str2Obj(s, UpdateMultiData.class); System.out.println(JsonUtil.obj2Str(updateMultiData)); + + String patientsStr = "{\"cardNo\":null,\"deliverOrg\":null,\"dueType\":null,\"pcountryId\":null,\"pnationId\":null,\"pprofessionTypeId\":null,\"pcensusTypeId\":null,\"plevelTypeId\":null,\"pworkUnit\":null,\"pliveTypeId\":null,\"pcerteTypeId\":null,\"fileCode\":null,\"bookbuildingDoctor\":null,\"bookbuildingDate\":null,\"hospitalId\":null,\"hcertificateNum\":null,\"hcertificateTypeId\":null,\"hcountryId\":null,\"hnationId\":null,\"hworkUnit\":null,\"hprofessionTypeId\":null,\"haddressRegister\":null,\"hprovinceRegisterId\":null,\"hcityRegisterId\":null,\"hareaRegisterId\":null,\"hstreetRegisterId\":null,\"address\":null,\"provinceId\":null,\"cityId\":null,\"areaId\":null,\"streetId\":null,\"serviceStatus\":null,\"expVip\":null,\"vipEndTime\":null,\"mremark\":null,\"dueStatus\":null,\"buildType\":null,\"addressPostRest\":null,\"provincePostRestId\":null,\"cityPostRestId\":null,\"areaPostRestId\":null,\"streetPostRestId\":null,\"addressRegister\":null,\"provinceRegisterId\":null,\"cityRegisterId\":null,\"areaRegisterId\":null,\"streetRegisterId\":null,\"communityId\":null,\"isVisit\":null,\"id\":\"5d7cbb9ac8554be3a7e149adfefcc54c\",\"username\":null,\"crisis\":null,\"avatar\":null,\"dueDate\":null,\"lastMenses\":null,\"fmDate\":null,\"age\":null,\"phone\":null,\"foreignId\":null,\"publishId\":null,\"publishName\":null,\"yn\":null,\"modified\":null,\"created\":null,\"gender\":null,\"birth\":null,\"type\":null,\"foreignSubId\":null,\"triageOrderNo\":null,\"nextCheckTime\":null,\"patientLevel\":null,\"lastCheckEmployeeId\":null,\"lastReportId\":null,\"riskFactorId\":null,\"firstRiskFactorId\":null,\"riskLevelId\":null,\"riskScore\":null,\"serviceType\":null,\"vip\":null,\"lastReportDoctorName\":null,\"mommyPatientId\":null,\"husbandName\":null,\"husbandPhone\":null,\"husbandBirth\":null,\"vcCardNo\":null,\"hlevelTypeId\":null,\"expType\":null,\"pid\":null,\"enable\":null,\"lastRhTime\":null,\"lastCTime\":\"2016-09-30 10:00:00\",\"postViewTimes\":null,\"operator\":null}\n"; + + } } diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/service/SyncDataService.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/service/SyncDataService.java index 846626c..ae25861 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/service/SyncDataService.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/service/SyncDataService.java @@ -166,7 +166,6 @@ public class SyncDataService { syncBaby(map); } catch (Exception e) { ExceptionUtils.catchException(e, "syncbaby thread error.id:"+map); - continue; } } } @@ -1075,164 +1074,162 @@ public class SyncDataService { public void syncBabyCheck(String parentId, MongoTemplate mongoTemplate,Date birth) { - String sql = " select * from MOMMY_CHILDEXAMINRECORD MC left join MOMMY_PATIENTINFO MP ON MP.PI_ID = MC.CER_PATIENTID WHERE replace(MP.Pi_Id,'-','')= '" + parentId + "' order by mc.CER_EXAMINDATE asc "; + try { + String sql = " select * from MOMMY_CHILDEXAMINRECORD MC left join MOMMY_PATIENTINFO MP ON MP.PI_ID = MC.CER_PATIENTID WHERE replace(MP.Pi_Id,'-','')= '" + parentId + "' order by mc.CER_EXAMINDATE asc "; + + List> list = JDBCUtil.getOracleListDataBySql(sql); + for (Map map : list) { + BabyCheckModel checkModel = new BabyCheckModel(); + + checkModel.setId(DataUtil.getString(map.get("CER_ID")).replace("-", "")); + checkModel.setYn(YnEnums.YES.getId()); + checkModel.setBuildId(parentId); + checkModel.setCheckDate(DataUtil.getDate(map.get("CER_EXAMINDATE"))); + String hname = DataUtil.getString(map.get("CER_EXAMINHOSPITAL")); + checkModel.setHospitalId(DataUtil.getOrgIdByName(hname)); + checkModel.setCreated(DataUtil.getDate(map.get("CER_CREATETIME"))); + checkModel.setModified(DataUtil.getDate(map.get("CER_MODIFIEDTIME"))); + checkModel.setHighRisk(DataUtil.getInteger(map.get(""))); + checkModel.setNextDate(DataUtil.getDate(map.get("CER_NEXTEXAMINDATE"))); + + String doctorName = DataUtil.getString(map.get("CER_DOCTORSIGNATURE")); + if (doctorName != null && !"".equals(doctorName)) { + String id = DataUtil.getUserIdByName(doctorName); + checkModel.setCheckDoctor(id); + } - List> list = JDBCUtil.getOracleListDataBySql(sql); - for (Map map : list) { - BabyCheckModel checkModel = new BabyCheckModel(); + checkModel.setHandlSuggest(DataUtil.getString(map.get("CER_DIRECTIVEOPINION"))); + checkModel.setMainFoster(DataUtil.getString(map.get(""))); - checkModel.setId(DataUtil.getString(map.get("CER_ID")).replace("-", "")); - checkModel.setYn(YnEnums.YES.getId()); - checkModel.setBuildId(parentId); - checkModel.setCheckDate(DataUtil.getDate(map.get("CER_EXAMINDATE"))); - String hname = DataUtil.getString(map.get("CER_EXAMINHOSPITAL")); - if (hname != null && !"".equals(hname)) { - String id = DataUtil.getOrgIdByName(hname); - checkModel.setHospitalId(id); - } - checkModel.setCreated(DataUtil.getDate(map.get("CER_CREATETIME"))); - checkModel.setModified(DataUtil.getDate(map.get("CER_MODIFIEDTIME"))); - checkModel.setHighRisk(DataUtil.getInteger(map.get(""))); - checkModel.setNextDate(DataUtil.getDate(map.get("CER_NEXTEXAMINDATE"))); - - String doctorName = DataUtil.getString(map.get("CER_DOCTORSIGNATURE")); - if (doctorName != null && !"".equals(doctorName)) { - String id = DataUtil.getUserIdByName(doctorName); - checkModel.setCheckDoctor(id); - } + List> checkItems = JDBCUtil.getOracleListDataBySql("SELECT A.e_Result,C.Ei_Name,B.CER_ID,B.CER_PATIENTID\n" + + " FROM MOMMY_EXAMINE A " + + " INNER JOIN MOMMY_CHILDEXAMINRECORD B ON A.E_CHILDEXAMINID=B.CER_ID " + + " INNER JOIN MOMMY_EXAMINEINFO C ON A.E_EXAMINEID=C.EI_ID " + - checkModel.setHandlSuggest(DataUtil.getString(map.get("CER_DIRECTIVEOPINION"))); - checkModel.setMainFoster(DataUtil.getString(map.get(""))); + " and B.CER_PATIENTID = '" + DataUtil.getString(map.get("CER_PATIENTID")) + "' " + + " and B.Cer_Id='" + DataUtil.getString(map.get("CER_ID")) + "'"); + String content = ""; + if (birth != null && DataUtil.getDate(map.get("CER_EXAMINDATE")) != null) { + int week = DateUtil.getWeek(birth, DataUtil.getDate(map.get("CER_EXAMINDATE"))); + for (Map guide : babyGuides) { + if (guide.get("ER_ID") != null && DataUtil.getString(guide.get("ER_ID")).equals(String.valueOf(week))) { + content += guide.get("ER_CONTENT"); + } - List> checkItems = JDBCUtil.getOracleListDataBySql("SELECT A.e_Result,C.Ei_Name,B.CER_ID,B.CER_PATIENTID\n" + - " FROM MOMMY_EXAMINE A " + - " INNER JOIN MOMMY_CHILDEXAMINRECORD B ON A.E_CHILDEXAMINID=B.CER_ID " + - " INNER JOIN MOMMY_EXAMINEINFO C ON A.E_EXAMINEID=C.EI_ID " + - - " and B.CER_PATIENTID = '" + DataUtil.getString(map.get("CER_PATIENTID")) + "' " + - " and B.Cer_Id='" + DataUtil.getString(map.get("CER_ID")) + "'"); - - String content = ""; - if (birth != null && DataUtil.getDate(map.get("CER_EXAMINDATE")) != null) - { - int week = DateUtil.getWeek(birth, DataUtil.getDate(map.get("CER_EXAMINDATE"))); - for (Map guide : babyGuides) - { - if (guide.get("ER_ID") != null && DataUtil.getString(guide.get("ER_ID")).equals(String.valueOf(week))) - { - content+=guide.get("ER_CONTENT"); } - } - } - checkModel.setGuideSuggest(content); - - for (Map item : checkItems) { - String result = DataUtil.getString(item.get("E_RESULT")); - String itemName = DataUtil.getString(item.get("EI_NAME")); - if ("喂养方式".equals(DataUtil.getString(item.get("EI_NAME")))) { - checkModel.setFeedType(WyTypeEnums.getIdByName(result)); - } else if ("户外活动".equals(DataUtil.getString(item.get("EI_NAME")))) { - checkModel.setActivity(result); - } else if ("服用维生素D".equals(DataUtil.getString(item.get("EI_NAME")))) { - checkModel.setVitaminD(result); - } else if ("体温".equals(itemName)) { - checkModel.setTemperature(result); - } else if ("身长".equals(itemName)) { - checkModel.setHeight(result); - } else if ("体重".equals(itemName)) { - checkModel.setWeight(result); - } else if ("身高别体重".equals(itemName)) { - checkModel.setHeightWeight(result); - } else if ("头围".equals(itemName)) { - checkModel.setHeightWeight(result); - } else if ("胸围".equals(itemName)) { - checkModel.setChestw(result); - } else if ("体格发育评价".equals(itemName)) { - List growthEvaluate = new ArrayList<>(); - growthEvaluate.add(result); - checkModel.setGrowthEvaluate(JsonUtil.array2JsonString(growthEvaluate)); - } else if ("经皮胆红素".equals(itemName)) { - //头:9.5|胸:10.0|腹:10.0 - String[] arrs = result.split("\\u007C"); - for (String str : arrs) { - String[] temps = str.split(":"); - if (str.startsWith("头")) { - checkModel.setBilirubinHead(temps.length == 2 ? temps[1] : ""); - } else if (str.startsWith("胸")) { - checkModel.setBilirubinChest(temps.length == 2 ? temps[1] : ""); - } else if (str.startsWith("腹")) { - checkModel.setBilirubinBelly(temps.length == 2 ? temps[1] : ""); - } - } - } else if ("前囟".equals(itemName)) { - //{"yeaOrNo":"no","wbhcc1":"5","wbhcc2":"5"} - //未闭合|1*1 未闭合|1.5×1.5 未闭合|1×1 - Map bregma = new HashMap(); - if ("闭合".equals(result)) { - bregma.put("yeaOrNo", "yes"); - } else if (result != null && result.startsWith("未闭合")) { - bregma.put("yeaOrNo", "no"); + checkModel.setGuideSuggest(content); + + for (Map item : checkItems) { + String result = DataUtil.getString(item.get("E_RESULT")); + String itemName = DataUtil.getString(item.get("EI_NAME")); + if ("喂养方式".equals(DataUtil.getString(item.get("EI_NAME")))) { + checkModel.setFeedType(WyTypeEnums.getIdByName(result)); + } else if ("户外活动".equals(DataUtil.getString(item.get("EI_NAME")))) { + checkModel.setActivity(result); + } else if ("服用维生素D".equals(DataUtil.getString(item.get("EI_NAME")))) { + checkModel.setVitaminD(result); + } else if ("体温".equals(itemName)) { + checkModel.setTemperature(result); + } else if ("身长".equals(itemName)) { + checkModel.setHeight(result); + } else if ("体重".equals(itemName)) { + checkModel.setWeight(result); + } else if ("身高别体重".equals(itemName)) { + checkModel.setHeightWeight(result); + } else if ("头围".equals(itemName)) { + checkModel.setHeightWeight(result); + } else if ("胸围".equals(itemName)) { + checkModel.setChestw(result); + } else if ("体格发育评价".equals(itemName)) { + List growthEvaluate = new ArrayList<>(); + growthEvaluate.add(result); + checkModel.setGrowthEvaluate(JsonUtil.array2JsonString(growthEvaluate)); + } else if ("经皮胆红素".equals(itemName)) { + //头:9.5|胸:10.0|腹:10.0 String[] arrs = result.split("\\u007C"); - if (arrs[1] != null && !"".equals(arrs[1])) { - - String temp = arrs[1].replace("×","&"); - temp = temp.replace("*","&"); - String[] items = temp.split("&"); - if (items != null && items.length > 0) { - if (items.length == 1) { - bregma.put("wbhcc1", items[0]); - } else { - bregma.put("wbhcc1", items[0]); - bregma.put("wbhcc2", items[1]); - } + for (String str : arrs) { + String[] temps = str.split(":"); + if (str.startsWith("头")) { + checkModel.setBilirubinHead(temps.length == 2 ? temps[1] : ""); + } else if (str.startsWith("胸")) { + checkModel.setBilirubinChest(temps.length == 2 ? temps[1] : ""); + } else if (str.startsWith("腹")) { + checkModel.setBilirubinBelly(temps.length == 2 ? temps[1] : ""); } + } + } else if ("前囟".equals(itemName)) { + //{"yeaOrNo":"no","wbhcc1":"5","wbhcc2":"5"} + //未闭合|1*1 未闭合|1.5×1.5 未闭合|1×1 + Map bregma = new HashMap(); + if ("闭合".equals(result)) { + bregma.put("yeaOrNo", "yes"); + } else if (result != null && result.startsWith("未闭合")) { + bregma.put("yeaOrNo", "no"); + String[] arrs = result.split("\\u007C"); + if (arrs.length >=2 &&arrs[1] != null && !"".equals(arrs[1])) { + + String temp = arrs[1].replace("×", "&"); + temp = temp.replace("*", "&"); + String[] items = temp.split("&"); + if (items != null && items.length > 0) { + if (items.length == 1) { + bregma.put("wbhcc1", items[0]); + } else { + bregma.put("wbhcc1", items[0]); + bregma.put("wbhcc2", items[1]); + } + } + } } + checkModel.setBregma(JsonUtil.obj2JsonString(bregma)); + } else if ("出牙数".equals(itemName)) { + checkModel.setTooth(result); + } else if ("面色".equals(itemName)) { + checkModel.setFaceColor(result); + } else if ("眼".equals(itemName)) { + checkModel.setEye(result); + } else if ("眼【视力】".equals(itemName)) { + checkModel.setEyesight(result); + } else if ("耳".equals(itemName)) { + checkModel.setEar(result); + } else if ("听力".equals(itemName)) { + checkModel.setHearing(result); + } else if ("颈部/胸部".equals(itemName)) { + checkModel.setNeck(result); + checkModel.setChest(result); + } else if ("腹部".equals(itemName)) { + checkModel.setBelly(result); + } else if ("脊柱四肢".equals(itemName)) { + checkModel.setSpineFours(result); + } else if ("肛门/外生殖器".equals(itemName)) { + checkModel.setPortaGenitals(result); + } else if ("可疑佝偻病症状".equals(itemName)) { + checkModel.setStoopStatus(result); + } else if ("可疑佝偻病体征".equals(itemName)) { + checkModel.setStoopSign(result); + } else if ("神经系统检查".equals(itemName)) { + checkModel.setNerve(result); + } else if ("骨密度Z值".equals(itemName)) { + checkModel.setBonez(result); + } else if ("血红蛋白值".equals(itemName)) { + checkModel.setHemoglobin(result); + } else if ("白细胞".equals(itemName)) { + checkModel.setWhiteCell(result); } - checkModel.setBregma(JsonUtil.obj2JsonString(bregma)); - } else if ("出牙数".equals(itemName)) { - checkModel.setTooth(result); - } else if ("面色".equals(itemName)) { - checkModel.setFaceColor(result); - } else if ("眼".equals(itemName)) { - checkModel.setEye(result); - } else if ("眼【视力】".equals(itemName)) { - checkModel.setEyesight(result); - } else if ("耳".equals(itemName)) { - checkModel.setEar(result); - } else if ("听力".equals(itemName)) { - checkModel.setHearing(result); - } else if ("颈部/胸部".equals(itemName)) { - checkModel.setNeck(result); - checkModel.setChest(result); - } else if ("腹部".equals(itemName)) { - checkModel.setBelly(result); - } else if ("脊柱四肢".equals(itemName)) { - checkModel.setSpineFours(result); - } else if ("肛门/外生殖器".equals(itemName)) { - checkModel.setPortaGenitals(result); - } else if ("可疑佝偻病症状".equals(itemName)) { - checkModel.setStoopStatus(result); - } else if ("可疑佝偻病体征".equals(itemName)) { - checkModel.setStoopSign(result); - } else if ("神经系统检查".equals(itemName)) { - checkModel.setNerve(result); - } else if ("骨密度Z值".equals(itemName)) { - checkModel.setBonez(result); - } else if ("血红蛋白值".equals(itemName)) { - checkModel.setHemoglobin(result); - } else if ("白细胞".equals(itemName)) { - checkModel.setWhiteCell(result); } - } - Date nextDate = DataUtil.getDate(map.get("CER_NEXTEXAMINDATE")); - mongoTemplate.updateFirst(new Query(Criteria.where("id").is(parentId)), Update.update("nextDate", nextDate), BabyModel.class); + Date nextDate = DataUtil.getDate(map.get("CER_NEXTEXAMINDATE")); + mongoTemplate.updateFirst(new Query(Criteria.where("id").is(parentId)), Update.update("nextDate", nextDate), BabyModel.class); - mongoTemplate.save(checkModel); + mongoTemplate.save(checkModel); + } + } catch (Exception e) { + System.out.println("syncBabyCheck patientId:"+parentId); + e.printStackTrace(); } } diff --git a/platform-operate-api/src/main/java/com/lyms/nio/NIOServer.java b/platform-operate-api/src/main/java/com/lyms/nio/NIOServer.java new file mode 100644 index 0000000..d767a5b --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/nio/NIOServer.java @@ -0,0 +1,145 @@ +package com.lyms.nio; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.nio.ByteBuffer; +import java.nio.channels.*; +import java.util.Iterator; + +/** + * Created by riecard on 2016/11/17. + */ +public class NIOServer { + //通道管理器 + private Selector selector; + + /** + * 获得一个ServerSocket通道,并对该通道做一些初始化的工作 + * @param port 绑定的端口号 + * @throws IOException + */ + public void initServer(int port) throws IOException { + // 获得一个ServerSocket通道 + ServerSocketChannel serverChannel = ServerSocketChannel.open(); + // 设置通道为非阻塞 + serverChannel.configureBlocking(false); + // 将该通道对应的ServerSocket绑定到port端口 + serverChannel.socket().bind(new InetSocketAddress(port)); + // 获得一个通道管理器 + this.selector = Selector.open(); + //将通道管理器和该通道绑定,并为该通道注册SelectionKey.OP_ACCEPT事件,注册该事件后, + //当该事件到达时,selector.select()会返回,如果该事件没到达selector.select()会一直阻塞。 + serverChannel.register(selector, SelectionKey.OP_ACCEPT); + new BeatTask(selector).start(); + } + + /** + * 采用轮询的方式监听selector上是否有需要处理的事件,如果有,则进行处理 + * @throws IOException + */ + @SuppressWarnings("unchecked") + public void listen() throws IOException { + System.out.println("服务端启动成功!"); + // 轮询访问selector + while (true) { + //当注册的事件到达时,方法返回;否则,该方法会一直阻塞 + selector.select(); + // 获得selector中选中的项的迭代器,选中的项为注册的事件 + Iterator ite = this.selector.selectedKeys().iterator(); + while (ite.hasNext()) { + SelectionKey key = (SelectionKey) ite.next(); + // 删除已选的key,以防重复处理 + ite.remove(); + // 客户端请求连接事件 + if (key.isAcceptable()) { + ServerSocketChannel server = (ServerSocketChannel) key + .channel(); + // 获得和客户端连接的通道 + SocketChannel channel = server.accept(); + // 设置成非阻塞 + channel.configureBlocking(false); + + //在这里可以给客户端发送信息哦 + channel.write(ByteBuffer.wrap(new String("向客户端发送了一条信息").getBytes())); + //在和客户端连接成功之后,为了可以接收到客户端的信息,需要给通道设置读的权限。 + channel.register(this.selector, SelectionKey.OP_READ); + + // 获得了可读的事件 + } else if (key.isReadable()) { + int length = read(key); + if (length == 0) { + key.channel().close(); + } + } + + } + + } + } + /** + * 处理读取客户端发来的信息 的事件 + * @param key + * @throws IOException + */ + public int read(SelectionKey key) throws IOException{ + // 服务器可读取消息:得到事件发生的Socket通道 + SocketChannel channel = (SocketChannel) key.channel(); + // 创建读取的缓冲区 + ByteBuffer buffer = ByteBuffer.allocate(10); + channel.read(buffer); + byte[] data = buffer.array(); + String msg = new String(data).trim(); + if (msg.length() == 0) { + return 0; + } + System.out.println("服务端收到信息:"+msg); + ByteBuffer outBuffer = ByteBuffer.wrap(msg.getBytes()); + channel.write(outBuffer);// 将消息回送给客户端 + return msg.length(); + } + + class BeatTask extends Thread { + + private Selector selector; + + public BeatTask(Selector selector) { + this.selector = selector; + } + + @Override + public void run() { + while (true) { + for (SelectionKey key:selector.keys()) { + System.out.println(key); + Channel channel = key.channel(); + if (channel instanceof SocketChannel) { + ByteBuffer outBuffer = ByteBuffer.wrap("heartbeat".getBytes()); + try { + ((SocketChannel)channel).write(outBuffer);// 将消息回送给客户端 + } catch (IOException e) { + e.printStackTrace(); + } + } + } + try { + sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + /** + * 启动服务端测试 + * @throws IOException + */ + public static void main(String[] args) throws IOException { + NIOServer server = new NIOServer(); + server.initServer(8000); + server.listen(); + } + + + +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java index 9cfa60a..2e9c2bd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java @@ -472,6 +472,7 @@ public class SyncDataTaskService { } List list = FileUtils.readLines(new File("D:\\qhd-jd.csv"), "utf-8"); int linenum = 0; + StringBuffer sb = new StringBuffer(); for (String line : list) { linenum++; if (linenum > 14035) { @@ -484,6 +485,8 @@ public class SyncDataTaskService { if (!ss[1].startsWith("2016")) { continue; } + PersonModel personModel = new PersonModel(); + personModel.setType(1); Patients patients = new Patients(); patients.setServiceStatus(0); patients.setServiceType(0); @@ -506,6 +509,8 @@ public class SyncDataTaskService { } if (patients.getBookbuildingDate() == null) { System.out.println(line); + sb.append(line); + sb.append("\r\n"); continue; } patients.setCreated(patients.getBookbuildingDate()); @@ -527,12 +532,13 @@ public class SyncDataTaskService { patients.setLastMenses(DateUtil.getYmdhmDate("20" + ss[6].trim() + month + day + "0000")); if (patients.getLastMenses() == null) { System.out.println(line); + sb.append(line); + sb.append("\r\n"); continue; } // > 41zhou if (DateUtil.getWeek(patients.getLastMenses(), new Date()) > 41) { - System.out.println(line); - continue; + personModel.setType(3); } // 预产期9,10,11 month = ss[10].trim(); @@ -641,13 +647,12 @@ public class SyncDataTaskService { } } } - PersonModel personModel = new PersonModel(); + personModel.setCreated(patients.getCreated()); personModel.setModified(patients.getModified()); personModel.setBirth(patients.getBirth()); personModel.setPhone(patients.getPhone()); personModel.setYn(1); - personModel.setType(1); personModel.setName(patients.getUsername()); personModel.setId(patients.getId()); @@ -729,9 +734,12 @@ public class SyncDataTaskService { } catch (Exception e) { + sb.append(line); + sb.append("\r\n"); ExceptionUtils.catchException(e, "syncQhdfyCsv Error."); } } + FileUtils.writeStringToFile(new File("d:\\qhdfy_lost.csv"), sb.toString()); } catch (Exception e) { ExceptionUtils.catchException(e, "syncQhdfyCsv Error."); }