Commit d530ea060e96c4c89a52c08fc5ecc49227ca0d6f

Authored by shiyang
1 parent 96fd3fea25

隆化儿童口腔检查-阳性列表和全部儿童模块

Showing 4 changed files with 314 additions and 29 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/BabyModel.java View file @ d530ea0
... ... @@ -768,6 +768,54 @@
768 768 * 口腔高危(同步字段)
769 769 */
770 770 private List<String> oralHighRisk;
  771 + /**
  772 + * 龋齿
  773 + */
  774 + private String qc;
  775 + /**
  776 + * 护齿
  777 + */
  778 + private String hc;
  779 + /**
  780 + * 窝沟封闭
  781 + */
  782 + private String wgfb;
  783 + /**
  784 + * 检查月龄套餐
  785 + */
  786 + private String oralCheckMonthId;
  787 +
  788 + public String getOralCheckMonthId() {
  789 + return oralCheckMonthId;
  790 + }
  791 +
  792 + public void setOralCheckMonthId(String oralCheckMonthId) {
  793 + this.oralCheckMonthId = oralCheckMonthId;
  794 + }
  795 +
  796 + public String getQc() {
  797 + return qc;
  798 + }
  799 +
  800 + public void setQc(String qc) {
  801 + this.qc = qc;
  802 + }
  803 +
  804 + public String getHc() {
  805 + return hc;
  806 + }
  807 +
  808 + public void setHc(String hc) {
  809 + this.hc = hc;
  810 + }
  811 +
  812 + public String getWgfb() {
  813 + return wgfb;
  814 + }
  815 +
  816 + public void setWgfb(String wgfb) {
  817 + this.wgfb = wgfb;
  818 + }
771 819  
772 820 public List<String> getOralHighRisk() {
773 821 return oralHighRisk;
platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java View file @ d530ea0
... ... @@ -10,6 +10,7 @@
10 10 import org.springframework.data.mongodb.core.query.Criteria;
11 11  
12 12 import java.util.ArrayList;
  13 +import java.util.Arrays;
13 14 import java.util.Date;
14 15 import java.util.List;
15 16  
... ... @@ -1322,6 +1323,179 @@
1322 1323 this.highRiskAndWeakSon = highRiskAndWeakSon;
1323 1324 }
1324 1325  
  1326 + //隆化-口腔模块
  1327 + /**
  1328 + * 检查时间-开始
  1329 + */
  1330 + private Date oralCheckTimeStart;
  1331 + /**
  1332 + * 检查时间-结束
  1333 + */
  1334 + private Date oralCheckTimeEnd;
  1335 +
  1336 + /**
  1337 + * 预约下次检查时间-开始
  1338 + */
  1339 + private Date nextOralCheckTimeStrat;
  1340 + /**
  1341 + * 预约下次检查时间-结束
  1342 + */
  1343 + private Date nextOralCheckTimeEnd;
  1344 +
  1345 + /**
  1346 + * 检查医生
  1347 + */
  1348 + private String oralCheckDoctor;
  1349 +
  1350 + /**
  1351 + * 阳性状态1:正常 2:阳性 (注:前端接传0代表查询1或2是口腔全部儿童列表必传。传2是口腔模块阳性列表)
  1352 + */
  1353 + private String positiveType;
  1354 + /**
  1355 + * 口腔高危(同步字段)
  1356 + */
  1357 + private List<String> oralHighRisk;
  1358 + /**
  1359 + * 龋齿从几开始(个数)
  1360 + */
  1361 + private String qcStart;
  1362 + /**
  1363 + * 龋齿到几结束(个数)
  1364 + */
  1365 + private String qcEnd;
  1366 + /**
  1367 + * 护齿(1已做/2未做)
  1368 + */
  1369 + private String hc;
  1370 + /**
  1371 + * 窝沟封闭(1已做/2未做)
  1372 + */
  1373 + private String wgfb;
  1374 + /**
  1375 + * 检查月龄套餐
  1376 + */
  1377 + private String oralCheckMonthId;
  1378 + /**
  1379 + * 当前月龄筛选-开始
  1380 + */
  1381 + private Integer queryMonthAgeStart;
  1382 + /**
  1383 + * 当前月龄筛选-结束
  1384 + */
  1385 + private Integer queryMonthAgeEnd;
  1386 +
  1387 + public Integer getQueryMonthAgeStart() {
  1388 + return queryMonthAgeStart;
  1389 + }
  1390 +
  1391 + public void setQueryMonthAgeStart(Integer queryMonthAgeStart) {
  1392 + this.queryMonthAgeStart = queryMonthAgeStart;
  1393 + }
  1394 +
  1395 + public Integer getQueryMonthAgeEnd() {
  1396 + return queryMonthAgeEnd;
  1397 + }
  1398 +
  1399 + public void setQueryMonthAgeEnd(Integer queryMonthAgeEnd) {
  1400 + this.queryMonthAgeEnd = queryMonthAgeEnd;
  1401 + }
  1402 +
  1403 + public Date getOralCheckTimeStart() {
  1404 + return oralCheckTimeStart;
  1405 + }
  1406 +
  1407 + public void setOralCheckTimeStart(Date oralCheckTimeStart) {
  1408 + this.oralCheckTimeStart = oralCheckTimeStart;
  1409 + }
  1410 +
  1411 + public Date getOralCheckTimeEnd() {
  1412 + return oralCheckTimeEnd;
  1413 + }
  1414 +
  1415 + public void setOralCheckTimeEnd(Date oralCheckTimeEnd) {
  1416 + this.oralCheckTimeEnd = oralCheckTimeEnd;
  1417 + }
  1418 +
  1419 + public Date getNextOralCheckTimeStrat() {
  1420 + return nextOralCheckTimeStrat;
  1421 + }
  1422 +
  1423 + public void setNextOralCheckTimeStrat(Date nextOralCheckTimeStrat) {
  1424 + this.nextOralCheckTimeStrat = nextOralCheckTimeStrat;
  1425 + }
  1426 +
  1427 + public Date getNextOralCheckTimeEnd() {
  1428 + return nextOralCheckTimeEnd;
  1429 + }
  1430 +
  1431 + public void setNextOralCheckTimeEnd(Date nextOralCheckTimeEnd) {
  1432 + this.nextOralCheckTimeEnd = nextOralCheckTimeEnd;
  1433 + }
  1434 +
  1435 + public String getOralCheckDoctor() {
  1436 + return oralCheckDoctor;
  1437 + }
  1438 +
  1439 + public void setOralCheckDoctor(String oralCheckDoctor) {
  1440 + this.oralCheckDoctor = oralCheckDoctor;
  1441 + }
  1442 +
  1443 + public String getPositiveType() {
  1444 + return positiveType;
  1445 + }
  1446 +
  1447 + public void setPositiveType(String positiveType) {
  1448 + this.positiveType = positiveType;
  1449 + }
  1450 +
  1451 + public List<String> getOralHighRisk() {
  1452 + return oralHighRisk;
  1453 + }
  1454 +
  1455 + public void setOralHighRisk(List<String> oralHighRisk) {
  1456 + this.oralHighRisk = oralHighRisk;
  1457 + }
  1458 +
  1459 + public String getQcStart() {
  1460 + return qcStart;
  1461 + }
  1462 +
  1463 + public void setQcStart(String qcStart) {
  1464 + this.qcStart = qcStart;
  1465 + }
  1466 +
  1467 + public String getQcEnd() {
  1468 + return qcEnd;
  1469 + }
  1470 +
  1471 + public void setQcEnd(String qcEnd) {
  1472 + this.qcEnd = qcEnd;
  1473 + }
  1474 +
  1475 + public String getHc() {
  1476 + return hc;
  1477 + }
  1478 +
  1479 + public void setHc(String hc) {
  1480 + this.hc = hc;
  1481 + }
  1482 +
  1483 + public String getWgfb() {
  1484 + return wgfb;
  1485 + }
  1486 +
  1487 + public void setWgfb(String wgfb) {
  1488 + this.wgfb = wgfb;
  1489 + }
  1490 +
  1491 + public String getOralCheckMonthId() {
  1492 + return oralCheckMonthId;
  1493 + }
  1494 +
  1495 + public void setOralCheckMonthId(String oralCheckMonthId) {
  1496 + this.oralCheckMonthId = oralCheckMonthId;
  1497 + }
  1498 +
1325 1499 @Override
1326 1500 public MongoQuery convertToQuery() {
1327 1501 MongoCondition condition = MongoCondition.newInstance();
... ... @@ -1755,6 +1929,25 @@
1755 1929 if (null!=settleType) {
1756 1930 condition = condition.and("settleType", settleType, MongoOper.IS);
1757 1931 }
  1932 + if (StringUtils.isNotEmpty(positiveType)) {
  1933 + if("0".equals(positiveType)){
  1934 + condition = condition.and("positiveType", Arrays.asList("1","2"), MongoOper.IN);
  1935 + }else {
  1936 + condition = condition.and("positiveType", positiveType, MongoOper.IS);
  1937 + }
  1938 + }
  1939 + if (CollectionUtils.isNotEmpty(oralHighRisk)) {
  1940 + condition = condition.and("oralHighRisk", oralHighRisk, MongoOper.IN);
  1941 + }
  1942 + if (StringUtils.isNotEmpty(oralCheckMonthId)) {
  1943 + condition = condition.and("oralCheckMonthId", oralCheckMonthId, MongoOper.IS);
  1944 + }
  1945 + if (StringUtils.isNotEmpty(hc)) {
  1946 + condition = condition.and("hc", hc, MongoOper.IS);
  1947 + }
  1948 + if (StringUtils.isNotEmpty(oralCheckMonthId)) {
  1949 + condition = condition.and("wgfb", wgfb, MongoOper.IS);
  1950 + }
1758 1951  
1759 1952 Criteria c = null;
1760 1953 if (null != birthStart) {
... ... @@ -2116,7 +2309,43 @@
2116 2309 }
2117 2310 }
2118 2311  
2119   -
  2312 + //龋齿个数筛选
  2313 + if(StringUtils.isNotEmpty(qcStart)){//大于等于
  2314 + //字符串判断大小
  2315 + String format = String.format("function() {\n" +
  2316 + " return this.qc >= %s \n" +
  2317 + " }",qcStart);
  2318 + if(null != c){
  2319 + c = c.and("$where").is(format).and("qc").ne("");//加ne:该字段在mongo中是”“ ,如果表达式有>=0也可查出。可以避免空数据
  2320 + }else{
  2321 + c = Criteria.where("$where").is(format).and("qc").ne("");
  2322 + }
  2323 + }
  2324 + if(StringUtils.isNotEmpty(qcEnd)){//小于等于
  2325 + //字符串判断大小
  2326 + String format = String.format("function() {\n" +
  2327 + " return this.qc <= %s \n" +
  2328 + " }",qcEnd);
  2329 + if(null != c){
  2330 + c = c.and("$where").is(format).and("qc").ne("");//加ne:该字段在mongo中是”“ ,如果表达式有>=0也可查出。可以避免空数据
  2331 + }else{
  2332 + c = Criteria.where("$where").is(format).and("qc").ne("");
  2333 + }
  2334 + }
  2335 + if (null != oralCheckTimeStart && oralCheckTimeStart != null) {
  2336 + if (null != c) {
  2337 + c = c.where("oralCheckTime").gte(oralCheckTimeStart).lte(oralCheckTimeStart);
  2338 + } else {
  2339 + c = Criteria.where("oralCheckTime").gte(oralCheckTimeStart).lte(oralCheckTimeStart);
  2340 + }
  2341 + }
  2342 + if (null != nextOralCheckTimeStrat && nextOralCheckTimeEnd != null) {
  2343 + if (null != c) {
  2344 + c = c.where("nextOralCheckTime").gte(nextOralCheckTimeStrat).lte(nextOralCheckTimeEnd);
  2345 + } else {
  2346 + c = Criteria.where("nextOralCheckTime").gte(nextOralCheckTimeStrat).lte(nextOralCheckTimeEnd);
  2347 + }
  2348 + }
2120 2349  
2121 2350 /**
2122 2351 * 多个orCondition 需要添加Criteria来控制json同级两个and或者or来解决mongodb执行查询问题
platform-dal/src/main/java/com/lyms/platform/query/BabyOralCheckQuery.java View file @ d530ea0
... ... @@ -122,11 +122,11 @@
122 122 private String ycsz;
123 123 private String ycszCount;
124 124 /**
125   - * 护齿(已做/未做)
  125 + * 护齿(1已做/2未做)
126 126 */
127 127 private String hc;
128 128 /**
129   - * 窝沟封闭(已做/未做)
  129 + * 窝沟封闭(1已做/2未做)
130 130 */
131 131 private String wgfb;
132 132 /**
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyOralCheckFacade.java View file @ d530ea0
... ... @@ -97,32 +97,26 @@
97 97 }
98 98  
99 99 //同步数据到儿童档案(添加)
100   - if (StringUtils.isEmpty(babyOralCheck.getId())) {
101   - BabyModel babyModelsyn = new BabyModel();
102   - babyModelsyn.setPositiveType(babyOralCheck.getPositiveType());
103   - babyModelsyn.setOralCheckTime(babyOralCheck.getOralCheckTime());
104   - babyModelsyn.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime());
105   - babyModelsyn.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor());
106   - babyModelsyn.setOralHighRisk(babyOralCheck.getOralHighRisk());
107   - Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModelsyn));
  100 + BabyOralCheckQuery checkQuery=new BabyOralCheckQuery();
  101 + checkQuery.setBabyId(babyOralCheck.getBabyId());
  102 + List<BabyOralCheck> babyOralChecks=babyOralCheckService.queryList(checkQuery,Sort.Direction.DESC,"created");
  103 + //修改最新的记录才会同步儿童档案,新增也会同步到儿童档案
  104 + if( (CollectionUtils.isNotEmpty(babyOralChecks) &&
  105 + babyOralChecks.get(0).getId().equals(babyOralCheck.getId())) || StringUtils.isEmpty(babyOralCheck.getId())){
  106 + BabyModel babyModel2 = new BabyModel();
  107 + babyModel2.setPositiveType(babyOralCheck.getPositiveType());
  108 + babyModel2.setOralCheckTime(babyOralCheck.getOralCheckTime());
  109 + babyModel2.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime());
  110 + babyModel2.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor());
  111 + babyModel2.setOralHighRisk(babyOralCheck.getOralHighRisk());
  112 + babyModel2.setOralCheckMonthId(babyOralCheck.getCheckMonthId());
  113 + babyModel2.setQc(babyOralCheck.getQc());
  114 + babyModel2.setHc(babyOralCheck.getHc());
  115 + babyModel2.setWgfb(babyOralCheck.getWgfb());
  116 + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModel2));
108 117 mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyOralCheck.getBabyId())), update, BabyModel.class);
109   - }else {//同步数据到儿童档案(修改)
110   - BabyOralCheckQuery checkQuery=new BabyOralCheckQuery();
111   - checkQuery.setBabyId(babyOralCheck.getBabyId());
112   - List<BabyOralCheck> babyOralChecks=babyOralCheckService.queryList(checkQuery,Sort.Direction.DESC,"created");
113   - //修改最新的记录才会同步儿童档案
114   - if(CollectionUtils.isNotEmpty(babyOralChecks) &&
115   - babyOralChecks.get(0).getId().equals(babyOralCheck.getId())){
116   - BabyModel babyModelsyn = new BabyModel();
117   - babyModelsyn.setPositiveType(babyOralCheck.getPositiveType());
118   - babyModelsyn.setOralCheckTime(babyOralCheck.getOralCheckTime());
119   - babyModelsyn.setNextOralCheckTime(babyOralCheck.getNextOralCheckTime());
120   - babyModelsyn.setOralCheckDoctor(babyOralCheck.getOralCheckDoctor());
121   - babyModelsyn.setOralHighRisk(babyOralCheck.getOralHighRisk());
122   - Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(babyModelsyn));
123   - mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(babyOralCheck.getBabyId())), update, BabyModel.class);
124   - }
125 118 }
  119 +
126 120 BaseObjectResponse br = new BaseObjectResponse();
127 121 br.setErrorcode(ErrorCodeConstants.SUCCESS);
128 122 br.setErrormsg("成功");
129 123  
... ... @@ -218,10 +212,10 @@
218 212 }
219 213 //当前月龄筛选
220 214 if(request.getQueryMonthAgeStart()!=null){
221   - request.setBirthStart(DateUtil.getBirthEnd(request.getQueryMonthAgeStart()));
  215 + request.setBirthStart(DateUtil.getBirthStart(request.getQueryMonthAgeEnd()));
222 216 }
223 217 if(request.getQueryMonthAgeEnd()!=null){
224   - request.setBirthEnd(DateUtil.getBirthStart(request.getQueryMonthAgeEnd()));
  218 + request.setBirthEnd(DateUtil.getBirthEnd(request.getQueryMonthAgeStart()));
225 219 }
226 220 List<BabyOralCheck> babyOralChecks=babyOralCheckService.queryList(request,Sort.Direction.DESC,"created");
227 221 List<Map> result=new ArrayList<>();
... ... @@ -244,6 +238,20 @@
244 238 babyModelQuery.setNeed("true");
245 239 babyModelQuery.setYn(YnEnums.YES.getId());
246 240 babyModelQuery.setHospitalId(hospitalId);
  241 + //结束日期加上时分秒
  242 + if (babyModelQuery.getOralCheckTimeEnd() != null) {
  243 + babyModelQuery.setOralCheckTimeEnd(DateUtil.getDayLastSecond(babyModelQuery.getOralCheckTimeEnd()));
  244 + }
  245 + if (babyModelQuery.getNextOralCheckTimeEnd() != null) {
  246 + babyModelQuery.setNextOralCheckTimeEnd(DateUtil.getDayLastSecond(babyModelQuery.getNextOralCheckTimeEnd()));
  247 + }
  248 + //当前月龄筛选
  249 + if(babyModelQuery.getQueryMonthAgeStart()!=null){
  250 + babyModelQuery.setBirthStart(DateUtil.getBirthStart(babyModelQuery.getQueryMonthAgeEnd()));
  251 + }
  252 + if(babyModelQuery.getQueryMonthAgeEnd()!=null){
  253 + babyModelQuery.setBirthEnd(DateUtil.getBirthEnd(babyModelQuery.getQueryMonthAgeStart()));
  254 + }
247 255 List<BabyModel> babyModelList = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery, "oralCheckTime", Sort.Direction.DESC);
248 256  
249 257 BaseObjectResponse br = new BaseObjectResponse();