package com.ots.project.tool.report.SAQ.gs.condition; import com.ots.common.enums.LangTypeEnum; import com.ots.project.exam.domain.TLibraryCode; import com.ots.project.tool.report.MAQ.base.BaseCondition; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.*; /** * @Description: SAQ简易版结果标题计算 * @Author: zhijie * @Date: 2021/6/6 */ @Getter @Setter @Slf4j public class ResponseFidelityDiagnosisSAQGs extends BaseCondition { private String name = "ResponseFidelityDiagnosisSAQGs"; private Double P_SDE23; private Double P_IM24; private Double P_INCON25; @Override public Map getMAQwaterDropsImages() { Map map = new HashMap(); map.put(name + IMAGE_PREFIX + "1", Objects.isNull(P_SDE23) ? "0" : String.valueOf(P_SDE23)); map.put(name + IMAGE_PREFIX + "2", Objects.isNull(P_IM24) ? "0" : String.valueOf(P_IM24)); map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); return map; } /** * 命中计算 * @param map * @param langType * @return */ @Override public TLibraryCode calculate(Map map, LangTypeEnum langType) { try { /** * 获取泰国接口返回的治标 */ String p_sde_t1 = map.get("P_SDE_T1"); String p_im_t1 = map.get("P_IM_T1"); String p_incon_t1 = map.get("P_INCON_T1"); String p_sde23 = map.get("P_SDE23"); String p_im24 = map.get("P_IM24"); String p_incon25 = map.get("P_INCON25"); //检查是否为空 if (checkParamsIsNull(p_sde_t1, p_im_t1, p_incon_t1, p_sde23, p_im24, p_incon25)) { return null; } Double P_SDE_T1 = Double.valueOf(p_sde_t1); Double P_IM_T1 = Double.valueOf(p_im_t1); Double P_INCON_T1 = Double.valueOf(p_incon_t1); P_SDE23 = Double.valueOf(p_sde23); P_IM24 = Double.valueOf(p_im24); P_INCON25 = Double.valueOf(p_incon25); //根据指标计算对应字典 boolean LIBSAQGS8801 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); boolean LIBSAQGS8802 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (5 < P_SDE23 && P_SDE23 < 95 && 5 < P_IM24 && P_IM24 < 95 && P_INCON25 < 95); boolean LIBSAQGS8803 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); boolean LIBSAQGS8804 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); boolean LIBSAQGS8805 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (5 < P_SDE23 && P_SDE23 < 95 && 5 < P_IM24 && P_IM24 < 95 && P_INCON25 < 95); boolean LIBSAQGS8806 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); Map calculateMap = new HashMap(); calculateMap.put(LIBSAQGS8801, "LIBSAQGS8801"); calculateMap.put(LIBSAQGS8802, "LIBSAQGS8802"); calculateMap.put(LIBSAQGS8803, "LIBSAQGS8803"); calculateMap.put(LIBSAQGS8804, "LIBSAQGS8804"); calculateMap.put(LIBSAQGS8805, "LIBSAQGS8805"); calculateMap.put(LIBSAQGS8806, "LIBSAQGS8806"); String codeId = selectTrueObject(calculateMap); //根据命中值获取报告字典返回 TLibraryCode maqReportLibrary = getMaqReportLibrary(map, codeId, langType); return maqReportLibrary; } catch (Exception ex) { log.error("ResponseFidelityDiagnosisSAQGs error:{}", ex.getMessage(), ex); return null; } } @Override public List calculateList(Map map, LangTypeEnum langType) { try { /** * 获取泰国接口返回的治标 */ String p_sde_t1 = map.get("P_SDE_T1"); String p_im_t1 = map.get("P_IM_T1"); String p_incon_t1 = map.get("P_INCON_T1"); String p_sde23 = map.get("P_SDE23"); String p_im24 = map.get("P_IM24"); String p_incon25 = map.get("P_INCON25"); //检查是否为空 if (checkParamsIsNull(p_sde_t1, p_im_t1, p_incon_t1, p_sde23, p_im24, p_incon25)) { return null; } Double P_SDE_T1 = Double.valueOf(p_sde_t1); Double P_IM_T1 = Double.valueOf(p_im_t1); Double P_INCON_T1 = Double.valueOf(p_incon_t1); P_SDE23 = Double.valueOf(p_sde23); P_IM24 = Double.valueOf(p_im24); P_INCON25 = Double.valueOf(p_incon25); //根据指标计算对应字典 boolean LIBSAQGS8801_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); boolean LIBSAQGS8802_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && ((5 < P_SDE23 && P_SDE23 < 95) && (5 < P_IM24 && P_IM24 < 95) && P_INCON25 < 95); boolean LIBSAQGS8803_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); boolean LIBSAQGS8804_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); boolean LIBSAQGS8805_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && ((5 < P_SDE23 && P_SDE23 < 95) && (5 < P_IM24 && P_IM24 < 95) && P_INCON25 < 95); boolean LIBSAQGS8806_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); Map calculateMap = new HashMap(); calculateMap.put(LIBSAQGS8801_3, "LIBSAQGS88011,LIBSAQGS88012,LIBSAQGS88013"); calculateMap.put(LIBSAQGS8802_3, "LIBSAQGS88021,LIBSAQGS88022,LIBSAQGS88023"); calculateMap.put(LIBSAQGS8803_3, "LIBSAQGS88031,LIBSAQGS88032,LIBSAQGS88033"); calculateMap.put(LIBSAQGS8804_3, "LIBSAQGS88041,LIBSAQGS88042,LIBSAQGS88043"); calculateMap.put(LIBSAQGS8805_3, "LIBSAQGS88051,LIBSAQGS88052,LIBSAQGS88053"); calculateMap.put(LIBSAQGS8806_3, "LIBSAQGS88061,LIBSAQGS88062,LIBSAQGS88063"); String codeId = selectTrueObject(calculateMap); String[] split = codeId.split(","); List libcodes = new ArrayList<>(); Arrays.stream(split).forEach(item -> { libcodes.add(getMaqReportLibrary(map, item, langType)); }); return libcodes; } catch (Exception ex) { log.error("ResponseFidelityDiagnosisSAQGs error:{}", ex.getMessage(), ex); return null; } } }