Browse Source

分项

master
zy_Java 4 years ago
parent
commit
12f47e1de1
  1. 8
      src/main/java/com/ccsens/carbasics/api/StatisticalController.java
  2. 9
      src/main/java/com/ccsens/carbasics/persist/dao/FirstAidRecordDao.java
  3. 8
      src/main/java/com/ccsens/carbasics/service/IStatisticalService.java
  4. 19
      src/main/java/com/ccsens/carbasics/service/StatisticalService.java
  5. 23
      src/main/java/com/ccsens/carbasics/util/Constant.java
  6. 31
      src/main/resources/mapper_dao/FirstAidRecordDao.xml

8
src/main/java/com/ccsens/carbasics/api/StatisticalController.java

@ -94,11 +94,11 @@ public class StatisticalController {
@MustLogin
@ApiOperation(value = "分项-溶栓患者/机械再通/脑出血", notes = "zy")
@RequestMapping(value = "/countSpecifyAnswer", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<StatisticalVo.Common> countSpecifyAnswer(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.CourtStatistics> params) {
public JsonResponse<StatisticalVo.Common> countSpecifyAnswer(@ApiParam @Validated @RequestBody QueryDto<StatisticalDto.CountSpecifyAnswer> params) {
log.info("分项-溶栓患者/机械再通/脑出血:{}", params);
// StatisticalVo.Common common = statisticalService.toCourtStatistics(params.getParam(), params.getUserId());
// log.info("分项-溶栓患者/机械再通/脑出血:{}", );
return JsonResponse.newInstance().ok();
StatisticalVo.Common common = statisticalService.subentrySpecifyAnswer(params.getParam(), params.getUserId());
log.info("分项-溶栓患者/机械再通/脑出血:{}",common);
return JsonResponse.newInstance().ok(common);
}
@MustLogin
@ApiOperation(value = "分项-时间窗患者", notes = "分项-时间窗患者")

9
src/main/java/com/ccsens/carbasics/persist/dao/FirstAidRecordDao.java

@ -98,4 +98,13 @@ public interface FirstAidRecordDao extends FirstAidRecordMapper {
* @return 分项-统计时间窗患者数
*/
List<StatisticalVo.Item> countTimeWindowPatientFx(@Param("hospitalIds") List<Long> hospitalIds,@Param("startTime") Long startTime,@Param("endTime") Long endTime,@Param("type") String type);
/**
* 分项-溶栓患者/机械再通/脑出血
* @param param 筛选条件
* @param hospitalIds 医院id
* @param type 统计时间类型
* @return 返回统计结果
*/
List<StatisticalVo.Item> subentrySpecifyAnswer(@Param("param")StatisticalDto.CountSpecifyAnswer param, @Param("hospitalIds")List<Long> hospitalIds,@Param("type") String type);
}

8
src/main/java/com/ccsens/carbasics/service/IStatisticalService.java

@ -63,4 +63,12 @@ public interface IStatisticalService {
* @return 统计结果
*/
StatisticalVo.Common timeWindowsPatient(StatisticalDto.TimeAndType param, Long userId);
/**
* 分项-溶栓患者/机械再通/脑出血
* @param param 筛选条件
* @param userId userId
* @return 返回统计结果
*/
StatisticalVo.Common subentrySpecifyAnswer(StatisticalDto.CountSpecifyAnswer param, Long userId);
}

19
src/main/java/com/ccsens/carbasics/service/StatisticalService.java

@ -237,4 +237,23 @@ public class StatisticalService implements IStatisticalService {
}
return total;
}
@Override
public StatisticalVo.Common subentrySpecifyAnswer(StatisticalDto.CountSpecifyAnswer param, Long userId) {
//根据项目id查找机构信息
List<Long> hospitalIds = getHospitalIds(param.getProjectId());
if (CollectionUtil.isEmpty(hospitalIds)) {
throw new BaseException(DefaultCodeError.NOT_ORGANIZATION);
}
//获取日期类型字符串
String type = Constant.CountType.valueOf(param.getCountType()).message;
//查询统计数据
List<StatisticalVo.Item> items = firstAidRecordDao.subentrySpecifyAnswer(param,hospitalIds,type);
long total = getTotal(items, param.getCountType());
//封装返回
StatisticalVo.Common common = new StatisticalVo.Common();
common.setTotal(total);
common.setList(items);
return common;
}
}

23
src/main/java/com/ccsens/carbasics/util/Constant.java

@ -265,5 +265,28 @@ public class Constant {
}
}
public enum CountType {
/**
* 统计类型 0:每小时 1每天 2每月
*/
hour((byte) 0,"%Y-%m-%d %H"),
day((byte) 1,"%Y-%m-%d"),
month((byte) 2,"%Y-%m")
;
public byte status;
public String message;
CountType(byte status, String message) {
this.status = status;
this.message = message;
}
public static CountType valueOf(byte value) {
switch (value) {
case 0: return hour;
case 2: return month;
default: return day;
}
}
}
}

31
src/main/resources/mapper_dao/FirstAidRecordDao.xml

@ -129,7 +129,7 @@
AND r2.answer + 0 &gt;= #{param.startTime}
</if>
<if test="param.endTime!=null and param.endTime!=0">
AND r2.answer + 0 &lt; #{param.endTime}
AND r2.answer + 0 &lt;= #{param.endTime}
</if>
GROUP BY
r1.answer
@ -161,4 +161,33 @@
GROUP BY
FROM_UNIXTIME(r2.answer / 1000, #{type})
</select>
<select id="subentrySpecifyAnswer" resultType="com.ccsens.carbasics.bean.vo.StatisticalVo$Item">
SELECT
FROM_UNIXTIME( r2.answer / 1000, #{type} ),
count( a.id )
FROM
t_qcp_first_aid a,
t_qcp_first_aid_record r1,
t_qcp_first_aid_record r2
WHERE
a.id = r1.first_aid_id
AND a.id = r2.first_aid_id
AND r1.question_code = #{param.questionCode}
AND r1.answer = #{param.answer}
AND r2.question_code = #{param.accordCode}
<if test="param.startTime!=null and param.startTime!=0">
AND r2.answer + 0 &gt;= #{param.startTime}
</if>
<if test="param.endTime!=null and param.endTime!=0">
AND r2.answer + 0 &lt;= #{param.endTime}
</if>
AND a.hospital_id IN
<foreach collection="hospitalIds" open="(" close=")" separator="," item="hospitalId">
#{hospitalId}
</foreach>
AND a.rec_status = 0
AND r1.rec_status = 0
GROUP BY
FROM_UNIXTIME( r2.answer / 1000, #{type})
</select>
</mapper>

Loading…
Cancel
Save