From affb80253645a1537495a262e86b73f634f883fb Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Fri, 30 Jun 2023 11:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=91=E4=B8=BB=E4=BB=BB?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E9=A1=B5=E9=9D=A2=E6=8B=86=E6=88=90=E5=8D=95?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/emr/dao/Archive_MasterMapper.java | 20 ++++- .../com/emr/entity/Archive_Master_Vo.java | 2 + .../ipml/Archive_MasterServiceImpl.java | 55 ++++++++++++- src/main/java/com/emr/util/FieldSelector.java | 12 +++ .../java/com/emr/util/ListPropertySetter.java | 22 ++++++ src/main/java/com/emr/util/ListUtils.java | 79 +++++++++++++++++++ .../java/com/emr/util/PropertySetter.java | 7 ++ src/main/java/com/emr/util/Setters.java | 14 ++++ .../resources/mapper/Archive_MasterMapper.xml | 61 ++++++++------ .../views/beHospitaledDir/beHospList.jsp | 2 +- .../WEB-INF/views/commitDir/commitList.jsp | 4 +- 11 files changed, 245 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/emr/util/FieldSelector.java create mode 100644 src/main/java/com/emr/util/ListPropertySetter.java create mode 100644 src/main/java/com/emr/util/ListUtils.java create mode 100644 src/main/java/com/emr/util/PropertySetter.java create mode 100644 src/main/java/com/emr/util/Setters.java diff --git a/src/main/java/com/emr/dao/Archive_MasterMapper.java b/src/main/java/com/emr/dao/Archive_MasterMapper.java index 9b6dadf8..bdb81cb8 100644 --- a/src/main/java/com/emr/dao/Archive_MasterMapper.java +++ b/src/main/java/com/emr/dao/Archive_MasterMapper.java @@ -2,14 +2,13 @@ package com.emr.dao; import com.emr.dto.Archive_MasterDto; import com.emr.entity.Archive_Master; -import com.emr.entity.Archive_Master_Following; import com.emr.entity.Archive_Master_Vo; import com.emr.entity.CommomVo; import org.apache.ibatis.annotations.Param; import java.util.List; -public interface Archive_MasterMapper { +public interface Archive_MasterMapper { /** * 根据主键删除记录 * @param id @@ -257,4 +256,21 @@ public interface Archive_MasterMapper { Integer selectTime1(Archive_Master_Vo archiveMasterVo); List selectChildMasterId(String time); + /** + * @description: 查询医生缺陷数量 + * @params: id + * @return: Archive_Master_Vo + * @author linjj + * @date: 2023/6/29 17:17 + */ + List getDoctorDefectNum(@Param(value = "ids")String ids); + + /** + * @description: 查询护士缺陷数量 + * @params: id + * @return: Archive_Master_Vo + * @author linjj + * @date: 2023/6/29 17:17 + */ + List getNurseDefectNum(@Param(value = "ids")String ids); } \ No newline at end of file diff --git a/src/main/java/com/emr/entity/Archive_Master_Vo.java b/src/main/java/com/emr/entity/Archive_Master_Vo.java index f67cf3a2..86030584 100644 --- a/src/main/java/com/emr/entity/Archive_Master_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Master_Vo.java @@ -279,6 +279,8 @@ public class Archive_Master_Vo { private Integer countNum; + private String archiveDetailId; + public Integer getFlag() { return flag; } diff --git a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java index a0f8f8d2..65781ec0 100644 --- a/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_MasterServiceImpl.java @@ -10,8 +10,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.emr.dao.*; import com.emr.service.Emr_DictionaryService; -import com.emr.util.HttpClientTool; -import com.emr.util.IDHelper; +import com.emr.util.*; import com.emr.vo.GetTime; import com.emr.vo.Power_User_Dto; import com.emr.entity.*; @@ -34,6 +33,7 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; @Slf4j @Service @@ -1140,7 +1140,6 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { log.error(errorStr); } } - @Override public List selectByCmtByColumn(Archive_Master_Vo archiveMasterVo, Integer offset, Integer limit) { //判断并设置查询是否打印权限 @@ -1149,7 +1148,57 @@ public class Archive_MasterServiceImpl implements Archive_MasterService { if(null != offset && null != limit) { PageHelper.offsetPage(offset, limit); } + //转换科室 List list = archiveMasterMapper.selectByCmtCol(archiveMasterVo); + //masterIds集合 + List masterIds = ListUtils.distinctSelect(list, Archive_Master_Vo::getId); + //转成逗号拼接 + String ids = String.join(",", masterIds); + //获取医生缺陷数量 + List doctorDefectNum = archiveMasterMapper.getDoctorDefectNum(ids); + //医生是否有缺陷 + Map doctorMap = ListUtils.toMap(doctorDefectNum, Archive_Master_Vo::getArchiveDetailId); + Setters.instance().list(list).cycleSetProperties(p -> { + String doctorId = p.getId(); + if (doctorMap.containsKey(doctorId)){ + String faultDoctorNum = doctorMap.get(doctorId).getFaultDoctorNum(); + p.setFaultDoctorNum(faultDoctorNum); + p.setNumb(1); + } + }); + //获取护士缺陷数量 + List nurseDefectNum = archiveMasterMapper.getNurseDefectNum(ids); + //护士是否有缺陷 + Map nurseMap = ListUtils.toMap(nurseDefectNum, Archive_Master_Vo::getArchiveDetailId); + //判断是否有缺陷就填入 + Setters.instance().list(list).cycleSetProperties(p -> { + String nurseId = p.getId(); + if (nurseMap.containsKey(nurseId)){ + String faultNurseNum = nurseMap.get(nurseId).getFaultNurseNum(); + p.setFaultNurseNum(faultNurseNum); + p.setNumb(1); + } + }); + //获取科室列表 + Emr_Dictionary dic = new Emr_Dictionary(); + dic.setEffective(1); + dic.setTypecode("dept_code"); + List dicList = emrDictionaryService.dicByTypeCode(dic); + //转换科室 + Map codeMap = ListUtils.toMap(dicList, Emr_Dictionary::getCode); + Setters.instance().list(list).cycleSetProperties(p -> { + String deptCode = p.getDeptName(); + String deptAdmissionCode = p.getDeptAdmissionTo(); + if(StringUtils.isNotBlank(deptCode) && codeMap.containsKey(deptCode)){ + String deptName = codeMap.get(deptCode).getName(); + p.setDeptName(deptName); + } + if(StringUtils.isNotBlank(deptAdmissionCode) && codeMap.containsKey(deptAdmissionCode)){ + String deptAdmissionTo = codeMap.get(deptAdmissionCode).getName(); + p.setDeptAdmissionTo(deptAdmissionTo); + } + }); + //设置医生、护士名称和打印标识 setNameAndPrintFlag(archiveMasterVo, list); return list; diff --git a/src/main/java/com/emr/util/FieldSelector.java b/src/main/java/com/emr/util/FieldSelector.java new file mode 100644 index 00000000..077c034a --- /dev/null +++ b/src/main/java/com/emr/util/FieldSelector.java @@ -0,0 +1,12 @@ +package com.emr.util; + +/** + * @InterfaceName FieldSelector + * @Description + * @Author linjj + * @Date 2023/6/29 16:41 + * @Version 1.0 + */ +public interface FieldSelector { + FieldType select(Type type); +} diff --git a/src/main/java/com/emr/util/ListPropertySetter.java b/src/main/java/com/emr/util/ListPropertySetter.java new file mode 100644 index 00000000..20eb1ddd --- /dev/null +++ b/src/main/java/com/emr/util/ListPropertySetter.java @@ -0,0 +1,22 @@ +package com.emr.util; + +import java.util.List; + +public class ListPropertySetter { + + private final List values; + + public ListPropertySetter(List values) { + this.values = values; + } + + public List cycleSetProperties(PropertySetter setter) { + + if (null == values) return values; + + for (T value : values) { + setter.apply(value); + } + return values; + } +} diff --git a/src/main/java/com/emr/util/ListUtils.java b/src/main/java/com/emr/util/ListUtils.java new file mode 100644 index 00000000..c950aa0a --- /dev/null +++ b/src/main/java/com/emr/util/ListUtils.java @@ -0,0 +1,79 @@ +package com.emr.util; + +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public final class ListUtils { + public static Map toMap(List list, FieldSelector selector) { + if (CollectionUtils.isEmpty(list)) return Collections.emptyMap(); + Map map = new HashMap<>(list.size()); + for (T t : list) { + K key = selector.select(t); + if (key != null) map.put(key, t); + } + return map; + } + + public static Map> groupBy(List list, FieldSelector selector) { + if (CollectionUtils.isEmpty(list)) return Collections.emptyMap(); + Map> map = new HashMap<>(); + for (T t : list) { + K key = selector.select(t); + if (key == null) continue; + if (!map.containsKey(key)) { + map.put(key, new ArrayList()); + } + map.get(key).add(t); + } + return map; + } + + public static List select(List list, FieldSelector selector) { + if (CollectionUtils.isEmpty(list)) return Collections.emptyList(); + List filedList = new ArrayList<>(list.size()); + for (T t : list) { + K key = selector.select(t); + if (key != null) filedList.add(key); + } + return filedList; + } + + public static List distinctSelect(List list, FieldSelector selector) { + if (CollectionUtils.isEmpty(list)) return Collections.emptyList(); + Set filedSet = new HashSet<>(); + for (T t : list) { + K key = selector.select(t); + if (key != null) filedSet.add(key); + } + return new ArrayList<>(filedSet); + } + + @SafeVarargs + public static List unionWithoutDuplicate(List... values) { + if (null == values || values.length <= 0) return Collections.emptyList(); + Set unionFiledSet = new HashSet<>(); + for (List value : values) { + if (!CollectionUtils.isEmpty(value)) { + unionFiledSet.addAll(value); + } + } + return new ArrayList<>(unionFiledSet); + } + + public static List skipDuplicateKey(List list, FieldSelector selector) { + if (CollectionUtils.isEmpty(list)) return Collections.emptyList(); + List filedList = new ArrayList<>(list.size()); + Map map = toMap(list, selector); + for (K key : map.keySet()) { + filedList.add(map.get(key)); + } + return filedList; + } +} diff --git a/src/main/java/com/emr/util/PropertySetter.java b/src/main/java/com/emr/util/PropertySetter.java new file mode 100644 index 00000000..714c4ed6 --- /dev/null +++ b/src/main/java/com/emr/util/PropertySetter.java @@ -0,0 +1,7 @@ +package com.emr.util; + +public interface PropertySetter { + + void apply(T t); + +} diff --git a/src/main/java/com/emr/util/Setters.java b/src/main/java/com/emr/util/Setters.java new file mode 100644 index 00000000..db1b6009 --- /dev/null +++ b/src/main/java/com/emr/util/Setters.java @@ -0,0 +1,14 @@ +package com.emr.util; + +import java.util.List; + +public class Setters { + + public static Setters instance() { + return new Setters<>(); + } + + public ListPropertySetter list(List values) { + return new ListPropertySetter<>(values); + } +} diff --git a/src/main/resources/mapper/Archive_MasterMapper.xml b/src/main/resources/mapper/Archive_MasterMapper.xml index 01edf72d..f7acf48c 100644 --- a/src/main/resources/mapper/Archive_MasterMapper.xml +++ b/src/main/resources/mapper/Archive_MasterMapper.xml @@ -974,35 +974,16 @@ select id,inp_no from Archive_Master where admission_date_time = #{time} + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp index 0b63748d..891fd0df 100644 --- a/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp +++ b/src/main/webapp/WEB-INF/views/beHospitaledDir/beHospList.jsp @@ -1643,7 +1643,7 @@ $(function () { //initTableLg(); - getFaultType(); + // getFaultType(); var objUrl; var img_html; var MasterID; diff --git a/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp b/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp index 9344bd9f..95aa0c34 100644 --- a/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp +++ b/src/main/webapp/WEB-INF/views/commitDir/commitList.jsp @@ -3623,11 +3623,11 @@ var redFlag = row.numb; if (redFlag != 0) { //有退回给医生的缺陷 - if(row.faultDoctorNum!= 0){ + if(row.faultDoctorNum!= 0 && row.faultDoctorNum!=null) { html = html + ''; } //有退回给护士的缺陷 - if(row.faultNurseNum!= 0){ + if(row.faultNurseNum!= 0 && row.faultNurseNum!=null){ html = html + ''; } }