From 311d88ebdab371d7acf20544c756b5602c38ec1a Mon Sep 17 00:00:00 2001 From: wang0018 <1007152140@qq.com> Date: Wed, 3 Mar 2021 16:15:27 +0800 Subject: [PATCH] la --- .../ccsens/tcm/service/PatientService.java | 57 +++++++++++++++---- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java index 12a0762a..effb4ce2 100644 --- a/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java +++ b/tcm/src/main/java/com/ccsens/tcm/service/PatientService.java @@ -136,9 +136,19 @@ public class PatientService implements IPatientService { //试题只需要记录3次的 9 和30 算分界限 <9 =0 ;<30 =14 ; >30 =90 记录2次的 270 算分界线 <270 算180 ,>270 算365 //是否需要去修改基本信息表中的录入状态 - Boolean update=false; + Boolean update=true; //先查看这个患者的需要的记录次数,在下面的这个对照组对象中呢 Inpatient inpatient = inpatientMapper.selectByPrimaryKey(patientInformation.getInpatientId()); + + //处理过的答案信息集合 + List patientRecordList1=new ArrayList(); + //处理过的提交的试题id集合 + Set longSet=new HashSet(); + //算出的提交天数 + Integer da=0; + //患者id + Long paId=0L; + //下面是对试题进行提交 if(param.getList().size()>0) { //在这个地方修改其中得集合 @@ -198,19 +208,42 @@ public class PatientService implements IPatientService { patientRecord.setCollectTime(threeAfter); } } - //进行数据更新 - if(patientRecord.getId()!=null){ - //更新 - patientRecordMapper.updateByPrimaryKeySelective(patientRecord); - - }else { - //添加 - patientRecord.setId(snowflake.nextId()); - patientRecordMapper.insertSelective(patientRecord); - update=true; - } + + //删除之前的答题内容,想的是先把这些题的id全存起来,这里可以不用考虑去重的问题,然后呢,根据答题id数组和患者id和collectime删除之前的内容。 + da=patientRecord.getCollectTime(); + paId=patientRecord.getPatientId(); + longSet.add(patientRecord.getTestQuestionsId()); + + + //因为得删除之前得内容,所以把试题集合都抽出来,另外再写循环进行插入 + patientRecordList1.add(patientRecord); + + + +// //进行数据更新 +// if(patientRecord.getId()!=null){ +// //更新 +// patientRecordMapper.updateByPrimaryKeySelective(patientRecord); +// +// }else { +// //添加 +// patientRecord.setId(snowflake.nextId()); +// patientRecordMapper.insertSelective(patientRecord); +// update=true; +// } } } + //对答案进行更新删除 + PatientRecordExample patientRecordExample=new PatientRecordExample(); + patientRecordExample.createCriteria().andTestQuestionsIdIn(new ArrayList(longSet)).andRecStatusEqualTo((byte) 0).andPatientIdEqualTo(paId).andCollectTimeEqualTo(da); + PatientRecord patientRecord=new PatientRecord(); + patientRecord.setRecStatus((byte)2); + patientRecordMapper.updateByExampleSelective(patientRecord,patientRecordExample); + + patientRecordList1.forEach(patientRecord1 -> { + patientRecord1.setId(snowflake.nextId()); + patientRecordMapper.insertSelective(patientRecord1); + }); //根据获取的发病时间答案数和需要搜集次数以及本次是需要更新,还是插入答案 , 来做修改基本信息中的录入状态 if (update){