Selaa lähdekoodia

add: 违规审核-科室事中审查列表

Scott 2 vuotta sitten
vanhempi
säilyke
511459b236

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/common/bo/mid/response/MidAuditDetailResponse.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import org.jeecg.modules.medical.common.bo.before.PatientInformationResponse;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -18,12 +19,16 @@ import java.util.Objects;
 @Data
 public class MidAuditDetailResponse implements Serializable {
 
+    @ApiModelProperty(value = "事中工单id")
+    private Integer id;
     @ApiModelProperty(value = "异常标题(规则处理结果)")
     private String description;
     @ApiModelProperty(value = "规则管理级别")
     private String violationLevel;
     @ApiModelProperty(value = "违反规则编码")
     private String medicalInsRuleInfoCode;
+    @ApiModelProperty(value = "违反规则名称")
+    private String medicalInsRuleInfoName;
     @ApiModelProperty(value = "提醒时间")
     private Date createTime;
     @ApiModelProperty(value = "违规项目/药品明细")
@@ -34,6 +39,13 @@ public class MidAuditDetailResponse implements Serializable {
     private MidAuditDoctorInfo doctorInfo;
     @ApiModelProperty(value = "诊断信息")
     private List<Object> diagnosticInfoList;
+    @ApiModelProperty(value = "类型")
+    private String projectType;
+    @ApiModelProperty(value = "违规总数")
+    private Integer violationTotal;
+
+    @ApiModelProperty(value = "异常金额总和")
+    private BigDecimal errorAmountTotal;
 
 
 

+ 48 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/controller/ViolationAnalysisController.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
@@ -119,11 +118,11 @@ public class ViolationAnalysisController {
 
     @ApiOperation(value="违规分析-事中违规项目统计-列表", notes="违规分析-违规项目统计")
     @GetMapping(value = "/mid/project/list")
-    public Result<IPage<MidAuditViolateProjectStatisticsResponse>> violateProjectStatisticsList(String projectSearch, //项目类别
-                                                                                                String startTime,
-                                                                                                String endTime,
-                                                                                                Integer pageNo,
-                                                                                                Integer pageSize
+    public Result<IPage<MidAuditViolateProjectStatisticsResponse>> midViolateProjectStatisticsList(String projectSearch, //项目类别
+                                                                                                   String startTime,
+                                                                                                   String endTime,
+                                                                                                   Integer pageNo,
+                                                                                                   Integer pageSize
     ) {
         IPage<AuditAdvanceWarningAuditDetailResponse> page = new Page<>(pageNo, pageSize);
         IPage<MidAuditViolateProjectStatisticsResponse> result = violationAnalysisService.violateProjectStatisticsList(page, projectSearch, startTime, endTime);
@@ -158,4 +157,47 @@ public class ViolationAnalysisController {
     }
 
 
+    @ApiOperation(value="违规分析-事中规则类型统计-列表", notes="违规分析-事中规则类型统计-列表")
+    @GetMapping(value = "/mid/rule/list")
+    public Result<IPage<MidAuditDetailResponse>> midViolateRuleTypePageList(
+            String medicalInsRuleInfoName, String projectType, String startTime, String endTime,
+            @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize
+    ) {
+        IPage<AuditAdvanceWarningAuditDetailResponse> page = new Page<>(pageNo, pageSize);
+        IPage<MidAuditDetailResponse> result = violationAnalysisService.midViolateRuleTypePageList(page,
+                medicalInsRuleInfoName, projectType, startTime, endTime);
+        return Result.OK(result);
+    }
+
+
+    @ApiOperation(value="违规分析-事中违规项目统计-列表-里面的详情", notes="违规分析-科室事中审查-列表-里面的详情")
+    @GetMapping(value = "/mid/rule/child/list")
+    public Result<IPage<AuditMidDetailListResponse>> midRuleAuditByDeptDetailList(
+            @RequestParam("medicalInsRuleInfoCode") String medicalInsRuleInfoCode, //违反规则code
+            @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+            @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+            HttpServletRequest req) {
+
+        if (!StringUtils.hasText(medicalInsRuleInfoCode)) {
+            return Result.error("违反规则代码不可为空");
+        }
+
+        AuditMidDetailListRequest request = new AuditMidDetailListRequest();
+        request.setMedicalInsRuleInfoCode(medicalInsRuleInfoCode);
+
+        Map<String, String[]> parameterMap = req.getParameterMap();
+        IPage<AuditMidDetailListResponse> result = violationAnalysisService.loadMidAuditPageList(request, pageNo, pageSize, parameterMap);
+
+        BigDecimal totalAmount = violationAnalysisService.statisticsMidAuditTotal(request);
+
+        Result<IPage<AuditMidDetailListResponse>> ok = Result.OK(result);
+        JSONObject j = new JSONObject();
+        j.put("totalAmount", totalAmount);
+        ok.setExtend(j);
+        return ok;
+    }
+
+
+
 }

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/MidIncidentAuditDetailMapper.java

@@ -9,6 +9,7 @@ import org.jeecg.modules.medical.common.bo.before.AuditAdvanceWarningAuditDetail
 import org.jeecg.modules.medical.common.bo.before.PatientInformationResponse;
 import org.jeecg.modules.medical.common.bo.mid.ViolationDetails;
 import org.jeecg.modules.medical.common.bo.mid.ViolationInfo;
+import org.jeecg.modules.medical.common.bo.mid.response.MidAuditDetailResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidAuditViolateProjectStatisticsResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidDeptAuditDetailResponse;
 import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
@@ -34,4 +35,7 @@ public interface MidIncidentAuditDetailMapper extends BaseMapper<MidIncidentAudi
 
     IPage<MidAuditViolateProjectStatisticsResponse> violateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, @Param("projectSearch")String projectSearch,
                                                                                  @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    IPage<MidAuditDetailResponse> midViolateRuleTypePageList(IPage<AuditAdvanceWarningAuditDetailResponse> page, @Param("medicalInsRuleInfoName") String medicalInsRuleInfoName,
+                                                             @Param("projectType") String projectType, @Param("startTime")  String startTime, @Param("endTime") String endTime);
 }

+ 29 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditDetailMapper.xml

@@ -109,4 +109,33 @@
         ORDER BY violationTotal DESC
     </select>
 
+    <select id="midViolateRuleTypePageList"
+            resultType="org.jeecg.modules.medical.common.bo.mid.response.MidAuditDetailResponse">
+        SELECT
+            id,
+            medical_ins_rule_info_name
+            ,medical_ins_rule_info_code
+             ,project_type
+             ,(select IFNULL(count(amount), 0) from mid_incident_audit_detail WHERE medical_ins_rule_info_code = m.medical_ins_rule_info_code ) as violationTotal  -- 违规总数
+             ,sum(amount) as errorAmountTotal -- 异常金额总和
+        FROM mid_incident_audit_detail as m
+        <where>
+            <if test="medicalInsRuleInfoName != null and medicalInsRuleInfoName != ''">
+                AND medical_ins_rule_info_name = #{medicalInsRuleInfoName}
+            </if>
+            <if test="projectType != null and projectType != ''">
+                AND project_type = #{projectType}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                and <![CDATA[ create_time >= #{startTime} ]]>
+            </if>
+            <if test="endTime != null and endTime != ''">
+                and <![CDATA[ create_time <= #{endTime} ]]>
+            </if>
+
+        </where>
+        GROUP BY medical_ins_rule_info_code
+        ORDER BY violationTotal DESC
+    </select>
+
 </mapper>

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/mapper/xml/MidIncidentAuditMapper.xml

@@ -47,6 +47,9 @@
             <if test="ew.medicalProjectCode != null and ew.medicalProjectCode != null" >
                 AND medical_project_code = #{ew.medicalProjectCode}
             </if>
+            <if test="ew.medicalInsRuleInfoCode != null and ew.medicalInsRuleInfoCode != ''">
+                AND medical_ins_rule_info_code = #{ew.medicalInsRuleInfoCode}
+            </if>
         </where>
     </select>
 

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IMidIncidentAuditDetailService.java

@@ -7,6 +7,7 @@ import org.jeecg.modules.medical.common.bo.before.PatientInformationResponse;
 import org.jeecg.modules.medical.common.bo.mid.FeedbackReasonRequest;
 import org.jeecg.modules.medical.common.bo.mid.ViolationDetails;
 import org.jeecg.modules.medical.common.bo.mid.ViolationInfo;
+import org.jeecg.modules.medical.common.bo.mid.response.MidAuditDetailResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidAuditViolateProjectStatisticsResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidDeptAuditDetailResponse;
 import org.jeecg.modules.medical.entity.MidIncidentAuditDetail;
@@ -50,4 +51,6 @@ public interface IMidIncidentAuditDetailService extends IService<MidIncidentAudi
 
 
     IPage<MidAuditViolateProjectStatisticsResponse> violateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String projectSearch, String startTime, String endTime);
+
+    IPage<MidAuditDetailResponse> midViolateRuleTypePageList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String medicalInsRuleInfoName, String projectType, String startTime, String endTime);
 }

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/IViolationAnalysisService.java

@@ -46,4 +46,5 @@ public interface IViolationAnalysisService {
     IPage<MidAuditViolateProjectStatisticsResponse> violateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String projectSearch, String startTime, String endTime);
 
 
+    IPage<MidAuditDetailResponse> midViolateRuleTypePageList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String medicalInsRuleInfoName, String projectType, String startTime, String endTime);
 }

+ 6 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/MidIncidentAuditDetailServiceImpl.java

@@ -12,6 +12,7 @@ import org.jeecg.modules.medical.common.bo.before.PatientInformationResponse;
 import org.jeecg.modules.medical.common.bo.mid.FeedbackReasonRequest;
 import org.jeecg.modules.medical.common.bo.mid.ViolationDetails;
 import org.jeecg.modules.medical.common.bo.mid.ViolationInfo;
+import org.jeecg.modules.medical.common.bo.mid.response.MidAuditDetailResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidAuditViolateProjectStatisticsResponse;
 import org.jeecg.modules.medical.common.bo.mid.response.MidDeptAuditDetailResponse;
 import org.jeecg.modules.medical.common.enums.MidFeedBackReasonEnum;
@@ -141,4 +142,9 @@ public class MidIncidentAuditDetailServiceImpl extends ServiceImpl<MidIncidentAu
     public IPage<MidAuditViolateProjectStatisticsResponse> violateProjectStatisticsList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String projectSearch, String startTime, String endTime) {
         return baseMapper.violateProjectStatisticsList(page, projectSearch, startTime, endTime);
     }
+
+    @Override
+    public IPage<MidAuditDetailResponse> midViolateRuleTypePageList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String medicalInsRuleInfoName, String projectType, String startTime, String endTime) {
+        return baseMapper.midViolateRuleTypePageList(page, medicalInsRuleInfoName, projectType, startTime, endTime);
+    }
 }

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/service/impl/ViolationAnalysisServiceImpl.java

@@ -168,6 +168,11 @@ public class ViolationAnalysisServiceImpl implements IViolationAnalysisService {
         return midIncidentAuditDetailService.violateProjectStatisticsList(page, projectSearch, startTime, endTime);
     }
 
+    @Override
+    public IPage<MidAuditDetailResponse> midViolateRuleTypePageList(IPage<AuditAdvanceWarningAuditDetailResponse> page, String medicalInsRuleInfoName, String projectType, String startTime, String endTime) {
+        return midIncidentAuditDetailService.midViolateRuleTypePageList(page, medicalInsRuleInfoName, projectType, startTime, endTime);
+    }
+
 //    @Override
 //    public IPage<AfterwardsAuditDetail> allAuditPage(AuditMidDetailListRequest request, Integer pageNo, Integer pageSize, Map<String, String[]> parameterMap) {
 //        Page<AfterwardsAuditDetail> page = new Page<>(pageNo, pageSize);